2015-08-26 69 views
1

我有2个JBoss Soa-p 5服务。Force Maven安装.esb和.jar

1服务pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>my.service</groupId> 
<artifactId>First</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> <!-- to build .jar file --> 
<name>${project.artifactId}</name> 

<!-- dependencies and properties here --> 

<build> 
    <finalName>${project.artifactId}</finalName> 
    <resources> 
     <resource> 
      <directory>src/main/java</directory> 
      <includes> 
       <include>**/*.properties</include> 
      </includes> 
     </resource> 
     <resource> 
      <directory>src/main/resources</directory> 
      <includes> 
       <include>**/*</include> 
      </includes> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
      <!-- to build .esb file --> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jboss-packaging-maven-plugin</artifactId> 
      <version>2.1.1</version> 
      <extensions>true</extensions> 
      <configuration> 
       <archiveName>${project.artifactId}</archiveName> 
      </configuration> 
      <executions> 
       <execution> 
        <id>build-esb</id> 
        <goals> 
         <goal>esb</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>${maven-compiler-plugin.version}</version> 
      <configuration> 
       <source>${java.version}</source> 
       <target>${java.version}</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
</project> 

第二服务使用从一日一的模型,因此我加一日一到依赖性:

<dependencies> 
    <dependency> 
     <groupId>my.service</groupId> 
     <artifactId>First</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 

但是这种情况require安装文件的First服务.jar本地存储库。

不幸的是,当我在First服务做mvn clean install.jar.esb建成,但只有.esb文件安装到本地回购。我需要删除jboss-packaging-maven-plugin以强制maven安装.jar

如何更改pom.xmlFirst服务来安装这两个包在clean install

回答

0

我想通了......这里是第一个服务的pom.xml零件:

<groupId>my.service</groupId> 
<artifactId>First</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<!-- 
    <packaging>jar</packaging> we don't need it, 
    after removing <goal>esb</goal> in jboss-packaging-maven-plugin 
    .jar will be build automatically 
--> 
<name>${project.artifactId}</name> 

<!-- dependecies and other stuff --> 

<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>jboss-packaging-maven-plugin</artifactId> 
     <version>${jboss.packaging.maven.plugin.version}</version> 
     <extensions>true</extensions> 
     <configuration> 
      <deploymentDescriptorFile>${basedir}/src/main/resources/META-INF/jboss-esb.xml</deploymentDescriptorFile> 
      <archiveName>${project.build.finalName}</archiveName> 
      <archive> 
       <manifestEntries> <!-- manifestEntiries are optional --> 
        <Build-Time>${maven.build.timestamp}</Build-Time> 
        <Specification-Title>${project.name}</Specification-Title> 
        <Specification-Version>${project.version}</Specification-Version> 
        <Implementation-Title>${project.name}</Implementation-Title> 
        <Implementation-Version>${project.version}</Implementation-Version> 
       </manifestEntries> 
      </archive> 
     </configuration> 
    </plugin> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
      <!-- most important part, we got .jar builded already, 
      now we need to create esb in other way then <goal>esb</goal> --> 
      <descriptor>src/assembly/esb.xml</descriptor> 
      <finalName>${project.build.finalName}</finalName> 
      <archive> 
       <manifest> 
        <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
        <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> 
       </manifest> 
       <manifestEntries> 
        <Build-Time>${maven.build.timestamp}</Build-Time> 
        <Created-By>${project.createdBy}</Created-By> 
        <LastModify-By>${project.lastModifyBy}</LastModify-By> 
        <Project-GroupId>${project.groupId}</Project-GroupId> 
        <Project-ArtifactId>${project.artifactId}</Project-ArtifactId> 
       </manifestEntries> 
      </archive> 
     </configuration> 
     <executions> 
      <execution> 
       <phase>package</phase> 
       <goals> 
        <goal>single</goal> 
       </goals> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>jboss-packaging-maven-plugin</artifactId> 
       <version>${jboss.packaging.maven.plugin.version}</version> 
      </dependency> 
     </dependencies> 
    </plugin> 
</plugins> 

esb.xml(basicaly我们的jar包到ESB文件)

<assembly> 
     <formats> 
      <format>esb</format> <!-- to build esb --> 
     </formats> 
     <includeBaseDirectory>false</includeBaseDirectory> 
     <fileSets> 
      <fileSet> 
       <directory>src/main/resources/META-INF</directory> 
       <outputDirectory>/META-INF</outputDirectory> 
      </fileSet> 
      <fileSet> 
       <directory>${basedir}/src/main/resources/xsd</directory> 
       <outputDirectory>/xsd</outputDirectory> 
       <includes> 
        <include>*.xsd</include> 
       </includes> 
      </fileSet> 
      <fileSet> 
       <directory>${basedir}/target</directory> 
       <outputDirectory>/</outputDirectory> 
       <includes> 
        <include>First.jar</include> 
       </includes> 
      </fileSet> 
     </fileSets> 

     <dependencySets> 
      <dependencySet> 
       <includes> 
        <include>commons-beanutils:commons-beanutils</include> 
       </includes> 
       <outputDirectory>/</outputDirectory> 
      </dependencySet> 
     </dependencySets> 
    </assembly>