gpt4 book ai didi

java - 在 Eclipse 中,在 .java 类中使用与其实际文件系统位置不同的包声明

转载 作者:行者123 更新时间:2023-12-02 08:09:05 25 4
gpt4 key购买 nike

我目前正在开发一个代码生成器,并为其构建了一个测试套件。下图描述了其组织方式的总体思路:

enter image description here

Tests.java 是一个标准的 JUnit 测试类。我预计它会开启

package tests.system.bytecode.temp_tests;

正如任何 Java 开发人员所期望的那样。

另一方面,IOrderable.javaTreeSet.java 将由我的代码生成器使用(即在它们编译为 .class 文件之后) 。但管理他们现在的大包大包申报对我来说有点麻烦。当我添加更多测试并开始尝试组织(嵌套)更多测试时,情况只会变得更糟。

如果IOrderable.javaTreeSet.java能够拥有独立于其真实路径的包声明,从而消除 future 的维护问题,那就完美了。

可以用 Eclipse 来完成这个任务吗?也许使用 Ant 或 Maven?

谢谢

最佳答案

Compiling .java classes in my Eclipse project with package declarations that don't correspond to their physical path in the project.

应该不可能。

<小时/>

但是您可以通过不同的源文件夹来分隔类。

在 Eclipse 中,您可以有多个源文件夹。编译时它们会混合在一起,因此这就是您所需要的:一个用于普通类的 src 文件夹和一个用于生成的类的 src-gen 文件夹。

使用 Maven,你也可以做同样的事情。

默认情况下:

  • src/main/java
  • src/test/java

但是您可以添加例如 src/main/java2target/generated-src

因此您需要 org.codehaus.mojo build-helper-maven-plugin。例如:

<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>${basedir}/target/generated-src</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>

关于java - 在 Eclipse 中,在 .java 类中使用与其实际文件系统位置不同的包声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7722669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com