-1

我正在使用copy-maven-plugincom.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.xml 包含 pom 值。这里面是另一个包含 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> 
4

1 回答 1

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}

更多信息在这里

于 2013-08-22T13:49:04.790 回答