我正在使用copy-maven-plugin
提供的com.github.goldin
。我想通过Maven复制一些文件。
但是,我不想硬编码路径,因为驱动器会有所不同。例如:
<build>
<plugins>
<plugin>
<groupId>com.github.goldin</groupId>
<artifactId>copy-maven-plugin</artifactId>
<version>0.2.5</version>
<executions>
<execution>
<id>create-archive</id>
<phase>test</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<resources>
<resource>
<targetPath>/../src/Server-Parent/src/test/resources</targetPath>
<file>/../src/Server-Parent/DB/src/test/resources/mongoDB.xml</file>
<destFileName>mongoDB.xml</destFileName>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
例如,当我硬编码时,C:\folder name\src\Server-Parent\src\test\resources
它可以在任何Maven项目中完美运行。但是,只要我放../src
或/../src
它就会出现问题。
我有什么想法可以解决这个问题吗?
[ERROR] Failed to execute goal com.github.goldin:copy-maven-plugin:0.2.5:copy (c reate-archive) on project Server-Parent: Processing <resource> [Target p ath(s) [/../src/Server-Parent/src/test/resources], directory [C:/folder name\src/Server-Parent/DB/src/test/resources], dependencies []] fa iled with [java.lang.AssertionError]: [C:\folder name\src\Server-Parent\DB\sr c\test\resources] does not exist. Expression: d.directory -> [Help 1] [ERROR]
编辑2:
我想要实现的目标:
我有Server-Parent,它是包含pom值的pom.xml。其中包含另一个包含pom.xml pom值的Server-SubParent。现在里面是包含jar的Server-SubFunctionality。
根据你的回答,如何实现这一目标:
$ {project.basedir}
这是三个项目,其中Server-SubParent是Server-Parent的模块,但Server-SubParent是另一个包含另一个包含实际功能的模块的pom。
Server-Parent
<modelVersion>4.0.0</modelVersion>
<artifactId>Server-Parent</artifactId>
<packaging>pom</packaging>
<name>Server-Parent</name>
<modules>
<module>Server-Sub-Parent</module>
</modules>
Server-SubParent
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.server</groupId>
<artifactId>Server-Parent</artifactId>
<version>S06B1-RELEASE</version>
</parent>
<artifactId>Server-Sub-Parent</artifactId>
<packaging>pom</packaging>
<name>Server-Sub-Parent</name>
<modules>
<module>Server-Sub-ParentFunctionality</module>
</modules>
Server-Sub-Parent-Functionality
<parent>
<groupId>com.server</groupId>
<artifactId>Server-Sub-Parent</artifactId>
<version>S06B1-RELEASE</version>
</parent>
<artifactId>Server-Sub-Parent-Functionality</artifactId>
<packaging>jar</packaging>
<name>Server-Sub-Parent-Functionality</name>
答案 0 :(得分:0)
尝试使用maven预定义变量。
<resource>
<targetPath>${project.basedir}/../src/Server-Parent/src/test/resources</targetPath>
<file>${project.basedir}/../src/Server-Parent/DB/src/test/resources/mongoDB.xml</file>
<destFileName>mongoDB.xml</destFileName>
</resource>
一些有用的变量
${project.basedir}
${project.build.directory}
${project.build.sourceDirectory}
更多信息here