我正在尝试使用Maven,我正在尝试对最初使用shell脚本构建的项目进行编组。
使用Maven经验法则:一个项目,一个工件,我创建了以下结构:
<PROJECT>
<MODULE-1>
<MODULE-2>
<MODULE-3>
..
<MODULE-N>
<RESOURCES>
<DISTRIB>
资源模块的结构如下:
<RESOURCES>/src/main/resources/<MODULE-1>/bin
<RESOURCES>/src/main/resources/<MODULE-1>/lib
<RESOURCES>/src/main/resources/<MODULE-1>/doc
<RESOURCES>/src/main/resources/<MODULE-2>/bin
<RESOURCES>/src/main/resources/<MODULE-2>/lib
<RESOURCES>/src/main/resources/<MODULE-2>/doc
...
<RESOURCES>/src/main/resources/<MODULE-N>/bin
<RESOURCES>/src/main/resources/<MODULE-N>/lib
<RESOURCES>/src/main/resources/<MODULE-N>/doc
这样做的原因是上面的资源在运行时需要,而不是编译时,它们主要是属性文件,配置文件和shell脚本来调用各种jar文件。对于最终资源步骤,我想将子目录组合到一个全局bin / lib / doc目录中。但是,我没有在程序集描述符中看到一个选项来剥离模块的前缀以达到我想要的目的:
<RESOURCES>/target/resources/bin
<RESOURCES>/target/resources/lib
<RESOURCES>/target/resources/doc
其中 bin 将包含在/ src / main / resources // bin目录,/ src / main / resources // bin目录等中找到的所有文件。类似于 lib < / em>, doc 。
我的问题:我应该有:
<MODULE-1>/src/external/resources/bin
<MODULE-1>/src/external/resources/lib
<MODULE-1>/src/external/resources/doc
...
<MODULE-N>/src/external/resources/bin
<MODULE-N>/src/external/resources/lib
<MODULE-N>/src/external/resources/doc
相反,结构,然后我将通过依赖集访问?这些文件不应该是各种模块的jar文件的一部分,因此不能存储在各自项目的src / main / resources中。或者通过使用其他maven插件来实现我想要实现的目标呢?
在DISTRIB模块中,我将RESOURCES模块的输出与JAR文件和依赖项组合在一起,以创建一个目录结构,然后将其与打包工具(Solaris软件包和WiX安装程序)一起使用。
任何帮助将不胜感激!
答案 0 :(得分:0)
在pom fort中,资源模块将源目录设置为/ src / main / resources /以外的其他目录,以便它不会将它们复制到目标文件夹。然后使用Maven Resources Plugin将资源文件复制到target / bin和target lib等。
e.g。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/bin/</outputDirectory>
<resources>
<resource>
<directory>src/external/resources/bin</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/lib/</outputDirectory>
<resources>
<resource>
<directory>src/external/resources/lib</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>`