Maven 2 使用maven建模项目之间的XML依赖关系
我正在构建一个由两个项目组成的应用程序:Maven 2 使用maven建模项目之间的XML依赖关系,maven-2,Maven 2,我正在构建一个由两个项目组成的应用程序:common和theApp。 现在,app依赖于common(使用依赖项建模)。我面临的棘手问题是: common/src/main/env中有XML文件,在应用程序运行时需要这些文件 为了让事情变得更有趣,run的发行版将具有以下结构: bin/-有脚本 lib/-由theApp和common dependencies/-具有应用程序所依赖的库jar config/-具有来自app和common 我已经完成了,只是我还在寻找一种方法,在app的POM
common
和theApp
。
现在,app
依赖于common
(使用依赖项建模)。我面临的棘手问题是:
common/src/main/env
中有XML文件,在应用程序运行时需要这些文件
为了让事情变得更有趣,run的发行版将具有以下结构:
bin/
-有脚本
lib/
-由theApp
和common
dependencies/
-具有应用程序所依赖的库jar
config/
-具有来自app
和common
我已经完成了,只是我还在寻找一种方法,在app的POM中编写一个maven目标,可以将common的XML文件放入config/
有什么想法吗
谢谢,
您将需要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>
<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>
<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>