相关疑难解决方法(0)

如何使用Maven创建具有依赖关系的可执行JAR?

我想将我的项目打包在一个可执行的JAR中进行分发.

如何将所有依赖JAR的Maven项目打包到我的输出JAR中?

java build-automation build-process maven-2 executable-jar

2276
推荐指数
28
解决办法
123万
查看次数

用Maven 2构建一个可运行的jar

我对Maven的口头禅相对较新,但我正在尝试使用Maven构建一个命令行可运行的jar.我已经设置了我的依赖项,但是当我运行mvn install并尝试运行jar时,会发生两件事.首先,没有找到主类,这是可以纠正的.当我纠正这个问题时,我在运行时遇到错误,说明无法找到类.

Maven没有在jar中包装我的依赖库,所以我无法将jar作为独立的应用程序运行.我该如何纠正?

java build-process maven-2 executable-jar

81
推荐指数
4
解决办法
9万
查看次数

在Maven中如何从生成的jar中排除资源?

当我创建一个带有依赖项的可执行jar时(使用本指南),所有属性文件也都打包到该jar中.如何阻止它发生?谢谢.

更新:我尝试使用Maven资源插件排除它们,但是当我在Eclipse中运行它时,我的应用程序将找不到属性文件(右键单击模块 - >运行方式 - > Java应用程序)

更新:感谢您的有用答案.我想我最好花时间学习Maven,现在我只选择最简单的解决方案.

maven

56
推荐指数
6
解决办法
10万
查看次数

Maven没有正确设置依赖关系的类路径

操作系统名称:"linux"版本:"2.6.32-27-generic"arch:"i386"系列:"unix"

Apache Maven 2.2.1(r801777; 2009-08-06 12:16:01-0700)

Java版本:1.6.0_20

我试图在ubuntu中使用maven与maven相关联.如果我移动maven下载到我的$ JAVA_HOME/jre/lib/ext /文件夹中的"mysql-connector-java-5.1.14.jar"文件,那么当我运行jar时一切都很好.

我想我应该只能在pom.xml文件中指定依赖项,maven应该自动设置依赖项jar的类路径.这是不正确的?

我的pom.xml文件如下所示:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.ion.common</groupId>
  <artifactId>TestPreparation</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>TestPrep</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

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

        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.ion.common.App</mainClass>
            </manifest>
          </archive>
        </configuration>

      </plugin>
    </plugins>
  </build>

  <dependencies>

    <!-- JUnit testing dependency -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- MySQL database driver -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.14</version>
      <scope>compile</scope>
    </dependency>

  </dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

命令"mvn package"构建它没有任何问题,我可以运行它,但是当应用程序尝试访问数据库时,会出现以下错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at …
Run Code Online (Sandbox Code Playgroud)

dependencies classpath maven

18
推荐指数
2
解决办法
6万
查看次数

运行jar,设置classpath

我有一个我用Maven制作的项目.我使用"mvn package"编译了一个JAR,现在我想运行它,最好不要设置一些疯狂的类路径,因为它依赖于Spring和一半的互联网或其他东西.有什么办法可以轻松运行吗?像"mvn run"之类的东西会很棒,或者是将所有依赖项都放入jar中的选项,所以我可以做"java -jar"也很精彩.

你是如何处理这个的,你建议做什么?因为基于〜/ .m2导出CLASSPATH可能只是伤害;-)

java jar classpath maven

4
推荐指数
2
解决办法
7942
查看次数

Maven Jar 的类未找到异常

我使用 maven 来管理我的项目中的依赖项。这是我的 pom.xml pom.xml

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.prasanna</groupId>
  <artifactId>fft-java</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

  <name>fft-java</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
      </dependency>
      <dependency>
          <groupId>com.github.wendykierp</groupId>
          <artifactId>JTransforms</artifactId>
          <version>3.0</version>
      </dependency>
  </dependencies>
    <build>
        <plugins>
            <plugin>
                <!-- Build an executable JAR -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.prasanna.TestFFT</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

我的应用程序中只有一个 java 类。当我从我的应用程序运行我的类时,它按预期运行。而如果我制作 amvn package并尝试从终端运行它 as java -jar test-fft.jar,我会得到java.lang.ClassNotFoundException: org.jtransforms.fft.DoubleFFT_2D

但是这个 DoubleFFT_2D 是我添加的 JTransforms 依赖项的一部分。我将如何运行这个罐子?

java jar maven

3
推荐指数
2
解决办法
2万
查看次数

从资源中排除属性文件

如何从src/main/resources中排除文件,例如:我有一个名为"map"的文件夹,我想保留这个文件夹,我想删除war中的所有内容(或者不要在firstplace中将其打包).

或者替代但结果相同,从src/main/resources中排除所有*.resources文件并将其他所有内容放入战争中?

谢谢

maven-2

2
推荐指数
2
解决办法
5227
查看次数