当前位置: 首页 > 知识库问答 >
问题:

在Maven中,如何输出正在使用的类路径?

宗政欣可
2023-03-14

对于我目前的目的,我有一个Maven项目,它创建了一个war文件,我想看看它在创建war时使用了什么实际的类路径。有没有办法在一个命令中做到这一点——而不必编译整个项目?

一个想法是让Maven生成目标/classpath.properties文件,然后停止。

共有3个答案

柯永福
2023-03-14

或者叫“mvn-e-X….”然后检查输出。。。

应涵容
2023-03-14

此命令输出Mac和Linux上的类路径:

mvn -q exec:exec -Dexec.executable=echo -Dexec.args="%classpath"

例如,当将结果分配给Bash脚本中的变量时,打印结果而不保存到文件中可能会很有用。此解决方案仅在Mac和Linux上运行,Bash shell脚本也是如此。

在Windows中(例如,在BAT文件中),如果没有echo可执行文件,则需要这样的内容(未经测试):

mvn -q exec:exec -Dexec.executable=cmd -Dexec.args="/c echo %classpath"

或者,您可以使用类路径执行java程序:

mvn -q exec:exec -Dexec.executable=java -Dexec.args="-cp %classpath Main"

或者甚至像这样(它会自动使用正确的类路径):

mvn -q exec:java -Dexec.mainClass="Main" 

然而,当程序失败时,这两种替代方法都会遇到Maven添加错误消息的问题。

萧允晨
2023-03-14

要在文件中单独获取类路径,可以:

mvn dependency:build-classpath -Dmdep.outputFile=cp.txt

或者将其添加到POM. XML中:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.9</version>
        <executions>
          <execution>
            <id>build-classpath</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>build-classpath</goal>
            </goals>
            <configuration>
              <!-- configure the plugin here -->
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

发件人:http://maven.apache.org/plugins/maven-dependency-plugin/usage.html

 类似资料:
  • 为了在命令行上运行TestNG测试,我必须在类路径中设置TestNG。为了做到这一点,我经历了- 无法通过命令行执行TestNG套件文件

  • 问题内容: 在执行程序期间,我需要使用其他jar。我手动将罐子添加到相对的./lib文件夹中,然后执行程序。如何在清单文件中定义类路径? 问题答案: 您不能在清单的属性中使用正则表达式或其他通配符。 Java中仅支持一种通配符,并且仅当在命令行上在“手动” 调用(即,不使用)上指定时,该通配符才能使用:usingdirectoryname/*。

  • 如果目录已经存在,则通过rdd.saveAsPickleFile(输出路径)写入文件失败。虽然这是避免意外删除文件的一件好事,但我想知道是否有明确覆盖文件夹/文件的选项?与数据帧类似: df.write.mode('overwrite')。format('json')。save(输出路径) 注:以下两个问题在这里和这里曾经问过,但没有得到明确的答案。

  • 问题内容: 有人可以给我一些在函数中使用输出参数的示例代码吗?我尝试过使用Google,但只是在功能中发现了它。我想在另一个函数中使用此输出值。 我正在开发的代码打算在Android中运行。 问题答案: Java通过值传递;没有像C#这样的参数。 您可以使用,或更改 作为 参考传递的对象( 按 值)。 代码样例 至于OP需要帮助的代码,以下是使用特殊值(通常用于引用类型)指示成功/失败的典型解决方

  • 问题内容: 因此,我可以很好地做到这一点: 如果存在。我也可以高兴地做到这一点: 如果类文件存在于jar的适当部分中。简单的东西。但是我无法为自己的生活做这样的事情: 存在的地方和存在的地方(当然不包含MyClass)。 我会感到愚蠢吗? 问题答案: 可能:) 基本上,这只是在类路径和jar文件中包括(当前目录)。

  • 我正在尝试转义字符串中的正斜杠,它可以在使用Java的路径中使用。 例如: 现在我想使用上面的字符串路径。同时,我必须确保将像在路径中一样出现。对不起,如果它是重复的,但我找不到任何满意的解决办法。我的目的是使用上面的字符串在ZooKeeper中创建节点。 示例: 如果我使用下面的字符串在Zokkeeper中创建节点,那么我应该将“test/world”作为一个单独的节点而不是单独的节点。Zook