2013-08-22 2 views
-1

Я использую copy-maven-plugin, предоставленный com.github.goldin. Я хочу скопировать некоторые файлы через Maven.Использование 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] 

EDIT 2:

Я пытаюсь для того чтобы достигнуть:

У меня есть сервер-Родитель, который pom.xml, содержащий POM значение. Внутри этого еще один сервер-субпараметр, содержащий значение pom.xml pom. Теперь внутри этого есть Server-SubFunctionality, содержащий jar.

Accoriding к вашему ответу, как это может быть achived:

$ {} project.basedir

Это три проекта, где сервер-SubParent является модуль 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> 
+1

'содержит проблемы. * Какие проблемы? * –

+1

'/../ src /' не является допустимой конструкцией пути, а не какой-либо ОС, о которой я знаю, особенно не в Windows. Какова фактическая ошибка, или это будет довольно быстро проголосовано и закрыто. –

+0

См. Править выше. – user1646481

ответ

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

+0

На самом деле, я не хочу использовать этот подход, потому что я нахожусь в папке C: \ some, а другие нет. Это может быть C: \ some folder2 – user1646481

+0

hmmm ... эти переменные относятся к местоположению pom. Поэтому независимо от того, где вы находитесь, путь останется таким же – WeMakeSoftware

+0

ok, предположим, что родительский проект - Server-Parent, содержащий значение pom как pom.xml, представляющее супер pom. Тогда внутри этого есть модули проектов Maven. Таким образом, первым является другой родитель, называемый Server-SubParent. Это еще один pom.xml, содержащий значение pom. Теперь заключительным этапом является еще одна подсистема Server-SubFunctionality, содержащая банку. Как бы вы указали структуру каталогов как то, что я пытаюсь сделать? – user1646481

Смежные вопросы