我正在构建一个由两个项目组成的应用程序:common
和theApp
。
现在,theApp
取决于common
(使用dependency
建模)。我面临的棘手问题是:
common/src/main/env
运行时需要theApp
中的XML文件。
为了让事情变得更有趣,run的分布将具有以下结构:
bin/
- 有脚本lib/
- 由theApp
和common
dependencies/
- 具有应用所依赖的库jar config/
- 包含theApp
和common
我已经完成了,除了我还在寻找一种在theApp
的POM中编写maven目标的方法,可以将common
的XML文件放在{{1}中}。
有什么想法吗?
谢谢, Harshath
答案 0 :(得分:0)
你需要maven程序集和依赖插件。在common / src / main / resources / assemblies / config.xml中创建一个汇编描述符,如下所示:
<assembly>
<id>config</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>${basedir}/src/main/env</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<useTransitiveDependencies>true</useTransitiveDependencies>
<outputDirectory>config/</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
然后在你的pom中使用它:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>config</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>my.groupid</groupId>
<artifactId>common</artifactId>
<version>my.version</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
这将创建一个附加的工件common-config.zip,您可以使用app的pom.xml中的maven-dependency-plugin进行扩展,将文件放在App的target / config目录中(这可能不合适,具体取决于关于如何创建最终发行版:)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>my.groupid</groupId>
<artifactId>common</artifactId>
<version>my.version</version>
<type>zip</type>
<overWrite>true</overWrite>
<includes>*</includes>
<outputDirectory>${project.build.directory}/config</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
其中一些内容记录在http://www.sonatype.com/books/mvnref-book/reference/assemblies.html ...
中