Maven链接和编译外部源不起作用

时间:2018-03-14 07:07:02

标签: java eclipse maven

在我的非maven Java项目中,我可以在eclipse中链接外部源并进行编译。

但是当我将相同的外部文件夹链接到maven时它没有编译,虽然我已经为链接源声明了sourceDirectory。

以下图片会让我的问题更加清晰:

我的maven工作区,在文件系统上不包含名为java

的文件夹

enter image description here

通过eclipse,我链接了一个源文件夹:

enter image description here

它出现在日食中:

enter image description here

下一步,我在我的pom.xml中为sourceDirectory目录添加了java标记:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <relativePath>../</relativePath>
    <groupId>com.mydomain</groupId>
    <artifactId>maven-master</artifactId>
    <version>1.0</version>
  </parent>  

  <artifactId>application</artifactId>  
  <name>application</name>
  <packaging>jar</packaging>

   <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.test.skip>true</maven.test.skip>
  </properties>

   <build>
        <sourceDirectory>java</sourceDirectory>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
              <excludes>                
                <exclude>**/old/**/*.java</exclude>                 
              </excludes>
              <includes>
                <include>com/**/*.java</include>
              </includes>
            </configuration>
          </plugin>
        </plugins>
    </build>
</project>

但是当我编译时(通过命令行或通过eclipse),我得到消息

  

无需编译资源。

enter image description here

我是否以错误的方式链接文件夹?

此外,我不确定是否需要此信息,主要类不是sourceDirectory的{​​{1}}的根,但它类似于java/Main.java < / p>

1 个答案:

答案 0 :(得分:0)

结果是,在这种情况下,sourceDirectory需要具有到源代码位置的绝对路径。

添加绝对位置(例如D:\Project\<.....>\java)后,我便可以通过maven进行构建。