【问题标题】:dozer with maven带有 maven 的推土机
【发布时间】:2012-12-23 12:27:16
【问题描述】:

我想从 github 下载最新版本的 Dozer mapper,但我没有找到任何 jar。

有 pom.xml 文件,我尝试使用命令mvn package 进行编译。我还将每个依赖项添加到 pom.xml 文件中。它创建了dozer-5.5.0-SNAPSHOT.jar

接下来我将这个 jar 导入到我的项目中,但它抛出了 java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

我还尝试在 netbeans 中创建 POM 项目并使用依赖项进行构建。导入我的项目后,它会抛出同样的异常。

我对 Maven 没有任何经验。如何获取正确的 JAR 文件?

【问题讨论】:

    标签: maven dozer


    【解决方案1】:

    猜你的dozer-package 依赖于slf4j,对吧?

    那么你应该检查这个 Maven 插件:Maven-Assembly-Plugin

    这会将您所需的依赖项放入 jar 中。

    Here you can read, how to use it

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        version>2.4</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
            <mainClass>your.main.class</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
           <phase>package</phase>
             <goals>
            <goal>single</goal>
             </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    

    如果您希望在调用 mvn clean package 时始终执行 assemby-plugin 将此添加到您的 maven-assembly-plugin:

     <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
     </executions>
    

    【讨论】:

    • 是的,它依赖于 commons-beanutils、org.apache.commons、org.slf4j。你能告诉我如何正确检索 mainClass 的值吗?
    • 这是您的主类,具有限定名称。我链接了该网站,您可以在哪里阅读,如何使用它。还更新了我的答案。
    • 在 pom.xml 文件中包含此插件,但没有配置和执行。这是链接github.com/DozerMapper/dozer/blob/master/pom.xml
    • 我也无法打包(缺少依赖项)。但是版本 5.3.2(不是很旧)在这里可用:sourceforge.net/projects/dozer/files/dozer/1.0
    【解决方案2】:

    你有一个正确的罐子。使用 dozer 将 commons-beanutils lang 和 slf4j 添加到您的项目中,或者将此库添加为 maven 依赖项。

    【讨论】:

      【解决方案3】:

      Dozer 依赖项所需的罐子。

      【讨论】:

        【解决方案4】:

        在 pom.xml 文件中创建条目。确保存在所需的罐子。

          <dependency>
                <groupId>net.sf.dozer</groupId>
                <artifactId>dozer</artifactId>
                <version>5.3.1</version>
            </dependency>
              <properties>
        <osgi.version>4.3.0</osgi.version>
        

        【讨论】:

        • 他已经添加了罐子。这是缺少的依赖项。尤其是发生异常的commons jar
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        • 1970-01-01
        • 1970-01-01
        • 2015-02-28
        • 1970-01-01
        相关资源
        最近更新 更多