如果pom有一个<build>标记,但其中没有显式设置<sourceDirectory>,那么Maven是否查看根目录中是否有源代码的src目录?我之所以问这个问题,是因为我在项目中继承的一些poms确实有源代码do,还有一些没有<sourceDirectory>。只有在实际源目录不是src (例如src/java)的情况下,才有必要显式设置该值吗?
下面是一个这样的pom构建定义的示例(注意,这是pom层次结构中的子pom ):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Internal-Build-num>1.0-mybuild-SNAPSHOT</Internal-Build-num>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>下面是build在superpom中的部分
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>1.0-alpha-7</version>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.5</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Version numbering -->
<plugin>
<artifactId>maven-scm-plugin</artifactId>
<configuration>
<!-- TAG format -->
<tag>${project.artifactId}-${project.version}</tag>
<pushChanges>false</pushChanges>
</configuration>
</plugin>
<!-- Version numbering -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<configuration>
<updateDependencies>true</updateDependencies>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
</plugins>
</build>发布于 2014-01-22 21:13:03
Maven是关于约定高于配置的,所以是的,您只需要在默认情况下指定sourceDirectory。java源代码的默认位置是:src/main/java
了解有关默认项目配置的信息:标准目录布局简介
https://stackoverflow.com/questions/21293894
复制相似问题