gpt4 book ai didi

java - Maven 找不到编译类型的依赖项

转载 作者:行者123 更新时间:2023-11-29 05:46:22 26 4
gpt4 key购买 nike

我有一个由 Maven 管理的小实验项目。它使用一个库来生成 PDF。这是我的 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>br.com.brandizzi.adam.pdfize</groupId>
<artifactId>pdfize</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8pre2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>

它只有一个类:

package br.com.brandizzi.adam.pdfize;
//

public class Main {

public static void main(String[] args) throws DocumentException,
MalformedURLException, FileNotFoundException {

String inputUrl = new File(args[0]).toURI().toURL().toString();
OutputStream pdf = new FileOutputStream(args[1]);

ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(inputUrl);
renderer.layout();
renderer.createPDF(pdf);

}
}

但是,当我运行 mvn compile 时,出现了这个错误:

$ mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building pdfize 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ pdfize ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ pdfize ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 1 source file to /home/adam/software/workspaces/test/pdfize/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[9,28] error: package org.xhtmlrenderer.pdf does not exist
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[11,23] error: package com.lowagie.text does not exist
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[38,3] error: cannot find symbol
[ERROR] class Main
/home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[29,11] error: cannot find symbol
[ERROR] class Main
/home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[43,2] error: cannot find symbol
[ERROR] class Main
/home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[43,31] error: cannot find symbol
[INFO] 6 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.094s
[INFO] Finished at: Sat Mar 30 21:36:59 BRT 2013
[INFO] Final Memory: 9M/106M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project pdfize: Compilation failure: Compilation failure:
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[9,28] error: package org.xhtmlrenderer.pdf does not exist
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[11,23] error: package com.lowagie.text does not exist
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[38,3] error: cannot find symbol
[ERROR] class Main
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[29,11] error: cannot find symbol
[ERROR] class Main
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[43,2] error: cannot find symbol
[ERROR] class Main
[ERROR] /home/adam/software/workspaces/test/pdfize/src/main/java/br/com/brandizzi/adam/pdfize/Main.java:[43,31] error: cannot find symbol
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

出了什么问题?

最佳答案

问题是依赖配置设置为runtime应该使用 compile 的范围范围。所以,<dependency> pom.xml 上的元素应该改成这样:

<dependencies>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8pre2</version>
<scope>compile</scope> <!-- <== NOTE THE DIFFERENCE -->
</dependency>
</dependencies>

当然,这引发了一个问题,即为什么我会尝试使用 runtime范围放在首位。我试图构建一个包含所有依赖项的 JAR,如果您也尝试这样做,那么更改范围就没有意义了。相反,请遵循此 awesome answer .

关于java - Maven 找不到编译类型的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725268/

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