Java 在“src”文件夹下将代码分离到主分支和测试分支,而不更改包名

Java 在“src”文件夹下将代码分离到主分支和测试分支,而不更改包名,java,apache,project,packages,directory-structure,Java,Apache,Project,Packages,Directory Structure,我想对现有项目采用一种方法,即: module/ src/ main/ java/ com.mycompany... test/ java/ com.mycompany... 问题是在将源代码从src/com.mycompany移动到src/main/java/com.mycompany和src/test/java/com.mycompanyIDE(Eclipse)之后返回警告并建议分别将包从com.mycompany

我想对现有项目采用一种方法,即:

module/
  src/
    main/
      java/
        com.mycompany...
    test/
      java/
        com.mycompany...
问题是在将源代码从
src/com.mycompany
移动到
src/main/java/com.mycompany
src/test/java/com.mycompany
IDE(Eclipse)之后返回警告并建议分别将包从
com.mycompany
重命名为
main.java.com.mycompany
test.java.com.mycompany

重要提示:
由于这是一个没有任何Maven集成的遗留项目,但仍在生产中使用,因此我希望尽可能减少对项目的更改,但仍将生产代码和单元测试代码分开

我的问题:

有没有办法避免在所有源文件中重命名包,但仍然使用Apache的源目录结构?

您可以在pom.xml中这样做,但也可以在Eclipse中编辑项目并在那里定义源文件夹


我注意到您实际上误读了Apache标准结构,它遵循Maven约定
src/main/java
等,所以我会使用它。然后,如果您使用某种形式的Maven Eclipse集成,那么默认情况下应该自动正确设置源文件夹。我曾经使用
mvneclipse:eclipse
(使用eclipsemaven插件)来实现这一点,但那是很久以前的事了——我现在使用Intellij。我猜现在Eclipse会自动从Maven获取源路径。

您可以在pom.xml中执行此操作,但也可以在Eclipse中编辑项目并在其中定义源文件夹


我注意到您实际上误读了Apache标准结构,它遵循Maven约定
src/main/java
等,所以我会使用它。然后,如果您使用某种形式的Maven Eclipse集成,那么默认情况下应该自动正确设置源文件夹。我曾经使用
mvneclipse:eclipse
(使用eclipsemaven插件)来实现这一点,但那是很久以前的事了——我现在使用Intellij。我猜Eclipse现在会自动从Maven获取源路径。

这是因为现在不是
src
,而是
main
test
是java源文件夹。我个人会切换到maven约定,从一个maven项目开始:src/main/java和src/test/java,同样的还有src/main/resources和src/test/resources。Maven已经很好地集成在所有IDE中。现在,在eclipse中适当地设置源文件夹(或者创建一个maven项目)。@JoopEggen,我是否正确地理解,为了指定一个新的java源文件夹,我必须定义
pom.xml
?是的,作为:File/new>/project…/这是因为现在不是
src
,而是
main
test
是java源文件夹。我个人会切换到maven约定,从一个maven项目开始:src/main/java和src/test/java,同样的还有src/main/resources和src/test/resources。Maven已经很好地集成在所有IDE中。现在,在eclipse中适当地设置源文件夹(或者创建一个maven项目)。@JoopEggen,我是否正确地理解,为了指定一个新的java源文件夹,我必须定义
pom.xml
?是的,作为:File/new>/project…/Maven/Maven项目。感谢您的回复。由于这个特定的项目是一种没有任何Maven集成的遗留代码,它仍在生产中使用,因此我想减少对
pom.xml
中一些设置的更改,而不添加Maven集成本身。如果希望在Eclipse中自动获取这些设置,Maven集成只是您需要的。为了使Maven构建工作正常,您只需要将源代码放在默认位置(
src/main/java
),如果您在项目根目录的命令行上运行例如
mvn clean install
,构建将接收它。感谢您的响应。由于这个特定的项目是一种没有任何Maven集成的遗留代码,它仍在生产中使用,因此我想减少对
pom.xml
中一些设置的更改,而不添加Maven集成本身。如果希望在Eclipse中自动获取这些设置,Maven集成只是您需要的。要使Maven构建工作正常,只需将源代码放在默认位置(
src/main/java
),如果您在项目根目录的命令行上运行例如
mvn clean install
,构建将获取它。