1

我有 2 个 JBoss Soa-p 5 服务。

第一次服务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需要将服务.jar文件安装First到本地存储库。

不幸的是,当我同时mvn clean install提供First服务.jar.esb构建时,但只有.esb文件安装到本地存储库。我需要删除一个jboss-packaging-maven-plugin强制 maven 安装.jar

如何更改服务pom.xmlFirst安装两个软件包clean install

4

1 回答 1

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(基本上我们将 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>
于 2015-08-26T12:45:13.440 回答