我想添加一个重要的提示,即转换这样的项目可能会产生副作用,当您拥有更大的项目时,这种影响会很明显。这是由于Intellij Idea(2017)仅从pom.xml中进行了一些重要设置,然后才可能导致混淆,至少以下部分会受到影响:
- 模块的注释设置已更改
- 更改了模块的编译器输出路径
- 资源设置被完全忽略,仅取自pom.xml
- 模块依赖关系混乱,必须检查
- 模块的语言/编码设置已更改
所有这些要点都需要进行检查和调整,但是在此之后,它就像是魅力。
更不幸的是,没有创建足够的pom.xml模板,我添加了一个示例,该示例可能有助于解决大多数问题。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Name</groupId>
<artifactId>Artifact</artifactId>
<version>4.0</version>
<properties>
<!-- Generic properties -->
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!--All dependencies to put here, including module dependencies-->
</dependencies>
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<testSourceDirectory> ${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<annotationProcessors/>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
编辑2019:
- 添加了递归资源扫描
- 添加了目录规范,这对于避免IDEA混淆内容根结构可能很重要