尝试添加链接资源时,build-helper-maven-plugin add-source无法正常工作

时间:2012-08-08 06:13:14

标签: maven maven-eclipse-plugin

我是maven的新手并且遇到了一个看起来很容易的问题但是我已经让我忙了一整天而且没办法让它工作。

首先作为运行eclipse的一部分:eclipse插件我创建了一个链接文件夹,如下所示:

<linkedResources>
<linkedResource>
    <name>properties</name>
    <type>2</type>
    <location>${PARENT-2-PROJECT_LOC}/some_other_project/properties</location>
</linkedResource>
<linkedResource>
    <name>properties/messages.properties</name>
    <type>1</type>
    <location>${PARENT-2-PROJECT_LOC}/some_other_project/properties/messages.properties</location>
</linkedResource>

然后我将该文件夹添加为源文件夹,如下所示:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
  <execution>
    <id>add-source</id>
    <phase>generate-sources</phase>
    <goals>
      <goal>add-source</goal>
    </goals>
    <configuration>
      <sources>
        <source>properties</source>
        <source>some_real_folder</source>
      </sources>
    </configuration>
  </execution>
</executions>
</plugin>

然而,当我在eclipse中查看生成的.classpath时,“some_real_folder”就在那里,但“属性”却没有。看起来默认情况下build-helper-maven-plugin会检查文件夹是否存在,如果不存在则不会添加它。

我在eclipse之外使用maven 3.0.4来运行构建,我可以在maven日志中看到类似这样的内容:

[INFO] Source directory: <some path>\properties added.

这是我的项目结构:

project1 
  \-- properties (this is the real folder) 

project2
   \-- some_real_folder
   \-- properties (this is the link resource pointing to the project1/properties folder)

我需要的是将“some_real_folder”和链接资源“属性”添加到project2的.classpath中

1 个答案:

答案 0 :(得分:0)

将人工制品外部的东西直接包含在人工制品中是一种不好的做法。您应该只在project2中包含project2以及project2的依赖项中的内容。 (我不确定你所做的事情是否可行。)

因此,如果你想在project2中使用project1 / properties,你通常会在project1的artefact中打包project1 / properties,并将project1的依赖项添加到project2。如果由于某种原因这不起作用(例如,因为你想将project1的东西移动到project2中的另一个位置),你可以用maven-dependency-plugin依赖关系解压缩它:copy-dependencies到project2的目标到某个合适的位置。