如何在目录结构与sourceDirectory不相似的maven中jar文件?

时间:2013-08-19 09:52:05

标签: maven

我编写了一个pom.xml来编译目录“D:\ Windchill_Market \ ERP Connector \ SourceCode \ Build \ src1 \ src \ main \ java \ com \ sample”中的java文件。

现在我必须将所有文件放在目录“D:\ Windchill_Market \ ERP Connector \ SourceCode \ Build \ src1”中。

下面是我的pom.xml:

<sourceDirectory>D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\java</sourceDirectory>
<plugins>  
    <plugin>                    
        <groupId>org.apache.maven.plugins</groupId>             
        <artifactId>maven-compiler-plugin</artifactId>              
        <version>2.5.1</version>              

    </plugin>   
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我能够生成类文件。但是我无法从我所需的目录中查看所有文件。只有来自sourceDirectory的文件才会受到震动。我尝试在maven-source-plugin中使用include标签。但它不起作用。

请帮忙。

由于

3 个答案:

答案 0 :(得分:0)

Maven对源文件和其他文件使用不同的文件夹(所谓的ressources)。从src\main\java开始,它会编译所有.java个文件,并将生成的.class文件打包到jar中。据我所知,该目录中的所有其他文件都被忽略了。

现在,如果您想要打包其他文件,请将它们放在src\main\resources中。

修改

手动指定资源目录添加

<resources>
    <resource>
        <directory>D:\Windchill_Market\ERP Connector\SourceCode\Build\src1\src\main\resource</directory>
    </resource>
</resources>

<build>部分

答案 1 :(得分:0)

maven-source-plugin正是应该做的。它在src / main / java中包含了源代码。它也可能包括src / main / resources,不确定。

如果您以某种方式管理从项目的根目录开始进行归档,则会滥用它。为了让Maven正确使用生成的JAR,它的内部结构必须反映普通JAR的内部结构 - 所以所有的包必须在那里,只是里面的文件是“.java”而不是“.class”。如果不是这样,Eclipse或其他工具将找不到这些源文件。

如果您想创建项目的“源代码分发”,您应该查看Maven Assembly Plugin。它允许您以非常灵活的方式从项目中创建包。这需要更长的答案来引导您完成整个过程。更好地阅读插件上的文档,并在遇到更具体的问题时再回来。有pre-defined configuration可能适合您的情况。

简而言之,这样的事情应该有效:

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>src</descriptorRef>
      </descriptorRefs>
    </configuration>
  </plugin>

答案 2 :(得分:-1)

感谢所有答案。我能够使用build-helper-maven-plugin来解决这个问题。