gpt4 book ai didi

Java 类通过 eclipse 中的外部 maven 编译,但不是(使用相同的 maven)从命令行编译

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:55 24 4
gpt4 key购买 nike

好吧,自从我开始工作(大约 10 年前)以来,我就一直在使用 maven,但是这个真的让我感到困惑......

这是我的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>company.project</groupId>
<artifactId>Artifact</artifactId>
<packaging>war</packaging>
<version>1.0.3-SNAPSHOT</version>
<name>Name</name>

<properties>
<project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.6.0-20160607</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.1.RELEASE</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>

<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.6</version>
</dependency>

<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>2.0.2</version>
</dependency>

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>

<build>

<finalName>${project.name}</finalName>

<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

到目前为止没有什么特别的(我想);然而,行为是完全不同的......

当我使用 M2E 通过 eclipse 运行它时:

  • 在目标文件夹内,类文件出现(在 target\classes 下)
  • 他们也在生成的 war 中

当我通过命令行运行它时:

  • 以上两者都不是...

这让我很困惑,因为通常情况恰恰相反,pom 中没有太多让我担心的异国情调,

显然没有多少人有这个问题......

任何人都可以告诉我从哪里开始寻找这个工作的指针吗?

这是命令行中的 maven 声明:

[INFO] --- maven-compiler-plugin:3.6.1:compile (default-compile) @ Reporting2 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 37 source files to C:\Project\wss\maven\Sysper2\Reporting_maven\target\classes

但是在该目录中找不到一个文件...

感谢任何帮助:)

版本:

  • eclipse NEON 3
  • maven 3.3.9(都在eclipse外部独立使用)
  • jdk 1.7

一个(困惑的)S.

ps: 还有

mvn -X clean install

不给出任何明显的错误/警告...

编辑:一些附加信息:

  • 如果我使用 jdk8,它会在我的电脑上编译
  • 在我同事的电脑上它根本不工作(maven 3.3.3;jdk7 和/或 8)

最佳答案

<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.6.0-20160607</version>
</dependency>

似乎是“导致”问题的原因......

降级到 4.4.2 使问题像阳光下的雪一样消失了......

显然,它让 maven 生成了两个命令行选项:

[DEBUG] -d /Users/kama/ws-git-maven-bugs/failingCompile/target/classes -classpath .....
[DEBUG] -d /Users/kama/ws-git-maven-bugs/failingCompile/target/classes -classpath .....

最后导致命令行javac报错:

javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options

this是maven编译插件jira中issue的链接

归功于 Robert Scholte用于查明害群之马...

归功于 Karl Heinz Marbaise找出到底出了什么问题......

关于Java 类通过 eclipse 中的外部 maven 编译,但不是(使用相同的 maven)从命令行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45506875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com