0

我编写了一个 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 中使用包含标签。但它不起作用。

请帮忙。

谢谢

4

4 回答 4

0

Maven 对源文件和其他文件(所谓的资源)使用不同的文件夹。从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>部分

于 2013-08-19T10:07:39.850 回答
0

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

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

如果你想创建你可能称之为项目的“源代码分发”,你应该看看Maven Assembly Plugin。它允许您以非常灵活的方式从您的项目中创建一个包。这将需要更长的答案才能引导您完成整个过程。最好阅读有关插件的文档,并在遇到更具体的问题时回来。有一个预定义的配置可能适用于您的情况。

简而言之,这样的事情应该可以工作:

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <descriptorRefs>
        <descriptorRef>src</descriptorRef>
      </descriptorRefs>
    </configuration>
  </plugin>
于 2013-08-19T12:23:39.007 回答
0

这个 Maven 特性对于 JavaFX 项目来说是致命的。在 Eclipse 中运行 - 一切正常。制作 jar - 开始时获取 'javafx jar java.lang.IllegalStateException: Location is not set'。解决方案:将您的资源文件(fxml、png 等)放入源包内的文件夹(此处为 src/MyProjectName/javafx),然后更改 pom 文件:

<sourceDirectory>src</sourceDirectory>
<resources>
  <resource>
    <!-- initially Maven makes this string <directory>src</directory> -->
    <directory>MyProjectName/javafx</directory>
    <excludes>
      <exclude>**/*.java</exclude>
    </excludes>
  </resource>
</resources>
于 2021-01-13T07:46:13.580 回答
-1

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

于 2013-08-20T09:48:10.387 回答