Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何在Tycho构建的JAR中包含未编译的java文件?_Maven_Tycho - Fatal编程技术网

Maven 如何在Tycho构建的JAR中包含未编译的java文件?

Maven 如何在Tycho构建的JAR中包含未编译的java文件?,maven,tycho,Maven,Tycho,我有一个带有*.java文件的源根目录,但我不想编译它们。相反,*.java文件应该按原样复制到jar中。这方面的用例是*.java文件是模板,因此应该按原样保留它们 为了实现这一点,我试图从编译阶段排除一个源文件夹,但是Tycho OSGi编译器插件的官方文档让我感到非常困惑。它说我可以使用参数,但我真的不知道如何处理所有这些参数类型pom.xml是一个结构化的文本文件,而不是源文件,这就是为什么我不理解如何为该参数使用java.util.Set 我的POM是这样的: 。。。 ... org.

我有一个带有*.java文件的源根目录,但我不想编译它们。相反,*.java文件应该按原样复制到jar中。这方面的用例是*.java文件是模板,因此应该按原样保留它们

为了实现这一点,我试图从编译阶段排除一个源文件夹,但是Tycho OSGi编译器插件的官方文档让我感到非常困惑。它说我可以使用参数,但我真的不知道如何处理所有这些参数类型
pom.xml
是一个结构化的文本文件,而不是源文件,这就是为什么我不理解如何为该参数使用
java.util.Set

我的POM是这样的:

。。。
...
org.eclipse.tycho
第谷编译器插件
0.21.0

这是正确的方法吗?如果是,我将如何完成配置?

尝试以下操作以删除任何出现的“res”文件夹和文件:

<plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
                <excludeResources>
                        <excludeResource>**/res</excludeResource>
                </excludeResources>
        </configuration>
</plugin>

org.eclipse.tycho
第谷编译器插件
${tycho版本}
**/res
或者,例如,包括“res”文件夹和exclude.jar文件:

<plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
                <includes>
                    <include>res</include>
                </includes>
                <excludes>
                    <exclude>**/*.jar</exclude>
                </excludes>
        </configuration>
</plugin>

org.eclipse.tycho
第谷编译器插件
${tycho版本}
物件
**/*jar先生
或者,要排除“res”文件夹以外的所有内容:


org.eclipse.tycho
第谷编译器插件
${tycho版本}
!**/物件

如果要从编译中排除整个源根文件夹,请不要将其添加到build.properties中的任何src.*项中,请参见[1]

另一方面,如果要在生成的jar中的源根文件夹中包含*.java文件,请将根文件夹添加到bin.includes in build.properties的列表中

excludeResources与您的问题无关,正如您链接的文档所说:

“不应复制到输出目录的非java资源文件的排除筛选器列表。”


[1]

我如何知道如何使用
构建一组
?当然,这是合乎逻辑和直截了当的,但不值得通过反复尝试来解决。是否有文档记录?您可以添加任意数量的规则:规则1规则2您可以在您在开场白中链接的官方页面以及在线教程(如tycho)中找到文档记录,因为tycho非常新,因此缺少一些文档方面的内容。在这个问题上,你并不孤单。Tycho需要完善它的文档。@ManelJ:Tycho是一个开源项目,所以请加快步伐并进行建设。事实上,即使是一个bug报告,特别是缺少的文档也会有所帮助。仅仅在这里发布项目需要做些什么是没有帮助的。奥伯里:我完全同意你的看法。不幸的是,鉴于我的技术知识,除了从用户角度报告问题外,我无法对此特定项目做出贡献。从您的问题中不清楚您是要从编译中排除整个源根文件夹还是源根文件夹中的一个包。另外,是否要将*.java文件从编译中排除,或将资源(非java文件)从复制中排除?感谢您的提示,我更准确地指定了我的问题。@Danny:您的编辑使问题变得更好,但最好从您的目标开始,然后再说明您尝试了什么。尤其是因为使用tycho编译器插件是否正确值得怀疑。我认为这是正确的答案,但如果它包含一个建议build.properties更改的示例,则会更有用。
<plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-compiler-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
                <excludeResources>
                        <excludeResource>!**/res</excludeResource>
                </excludeResources>
        </configuration>
</plugin>