java src 路径在 pom.xml 而有多个模块

java src path in pom.xml while there are multiple modules

我有一个包含以下 pom.xml 文件的双模块项目,但 intellij idea 未检测到 java 文件并将它们视为一般文件,我哪里出错了?

模块-a 的 pom 文件是

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

 <modelVersion>4.0.0</modelVersion>

 <parent>
  <groupId>myproj</groupId>
  <artifactId>parent</artifactId>
  <version>0.4.0-SNAPSHOT</version>
  <relativePath>../pom.xml</relativePath>
 </parent>

 <artifactId>module-a</artifactId>
 <name>module-a</name>
 <packaging>jar</packaging>
 <description>module-a</description>

 <dependencies>
  <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.7.21</version>
   <scope>compile</scope>
  </dependency>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.11</version>
   <scope>test</scope>
  </dependency>
 </dependencies>

 <build>
  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <configuration>
      <testFailureIgnore>true</testFailureIgnore>
     </configuration>
    </plugin>
   </plugins>
  </pluginManagement>
 </build>

</project>

模块-b 的 pom 文件是

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

 <modelVersion>4.0.0</modelVersion>

 <parent>
  <groupId>myproj</groupId>
  <artifactId>parent</artifactId>
  <version>0.4.0-SNAPSHOT</version>
  <relativePath>../pom.xml</relativePath>
 </parent>

 <artifactId>module-b</artifactId>
 <name>module-b</name>
 <packaging>jar</packaging>
 <description>module-b</description>

 <dependencies>
  <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   <version>1.7.21</version>
   <scope>compile</scope>
  </dependency>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.11</version>
   <scope>test</scope>
  </dependency>
 </dependencies>

 <build>
  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-surefire-plugin</artifactId>
     <configuration>
      <testFailureIgnore>true</testFailureIgnore>
     </configuration>
    </plugin>
   </plugins>
  </pluginManagement>
 </build>

</project>

父pom文件是

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

 <modelVersion>4.0.0</modelVersion>

 <groupId>myproj</groupId>
 <artifactId>parent</artifactId>
 <name>myproj.parent</name>
 <packaging>pom</packaging>
 <version>0.4.0-SNAPSHOT</version>

 <scm>
  <connection>scm:svn:http://localhost:7070/svn/myproj/branches/test</connection>
  <developerConnection>scm:svn:http://localhost:7070/svn/myproj/branches/test</developerConnection>
 </scm>

 <modules>
  <module>module-a</module>
  <module>module-b</module>
 </modules>

 <build>
  <pluginManagement>
   <plugins>
    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <configuration>
      <source>1.5</source>
      <target>1.5</target>
     </configuration>
    </plugin>
   </plugins>
  </pluginManagement>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <configuration>
     <encoding>utf-8</encoding>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
     <source>1.6</source>
     <target>1.6</target>
     <encoding>utf-8</encoding>
     <showWarnings>true</showWarnings>
     <fork>true</fork>
     <optimize>true</optimize>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.2.2</version>
    <configuration>
     <useReleaseProfile>true</useReleaseProfile>
     <releaseProfiles>complete</releaseProfiles>
     <username>${username}</username>
     <password>${password}</password>
    </configuration>
   </plugin>
  </plugins>
 </build>

 <dependencies>
  <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>3.8.1</version>
   <scope>test</scope>
  </dependency>
 </dependencies>

 <properties>
  <!-- Dependency(s) Versions -->
  <org.slf4j>1.7.21</org.slf4j>
  <kotlin.version>1.2.21</kotlin.version>
  <!-- Dependency(s) Versions -->
  <!-- Configurations -->
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <proguard.skip>true</proguard.skip>
  <debug.skip>false</debug.skip>
  <product.name>myproj</product.name>
 </properties>

</project>

默认源目录为 src/main/java。在您的情况下,每个模块中只有 src

您可以在每个模块的 pom 文件中包含以下行。

<sourceDirectory>${project.build.directory}/src</sourceDirectory>

或者您可以尝试将每个 src 目录标记为源目录。