私は未使用の依存関係を表示できるツールを探しています。私はすぐにmavenコマンドmvn dependency:analyze
を見つけた。この問題は、「未使用」の依存関係が検出され、欠落した場合にビルドに失敗することがあることがよくあります。ロンボクの使用パッケージがあるのpom.xmlmvn依存関係の結果が正しくありません:
$ mvn dependency:analyze
[INFO] Building LogfileTool 0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-dependency-plugin:2.8:analyze (default-cli) > test-compile @ LogfileTool >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ LogfileTool ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ LogfileTool ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 7 source files to C:\Projects\LogfileToolMa\LogfileTool\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ LogfileTool ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Projects\LogfileToolMa\LogfileTool\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ LogfileTool ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] <<< maven-dependency-plugin:2.8:analyze (default-cli) < test-compile @ LogfileTool <<<
[INFO]
[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ LogfileTool ---
[WARNING] Unused declared dependencies found:
[WARNING] log4j:apache-log4j-extras:jar:1.2.17:compile
[WARNING] org.projectlombok:lombok:jar:1.16.18:provided
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
依存
<dependencies>
<!-- Logger -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>apache-log4j-extras</artifactId>
<version>1.2.17</version>
</dependency>
<!-- Generating Getter, Setter etc. -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
<type>jar</type>
</dependency>
</dependencies>
:
lombok.AccessLevel
lombok.Data
lombok.Getter
lombok.Setter
からロンボクを除去することによって、ここで
は、最適化されたプロジェクトの一例です私のPOM私はプロジェクトをBuildigによって次のエラーが発生します
-------------------------------------------------------------
COMPILATION ERROR :
-------------------------------------------------------------
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[7,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[8,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[9,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[10,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[26,2] cannot find symbol
symbol: class Data
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[13,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[14,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[15,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[16,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[26,2] cannot find symbol
symbol: class Data
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[34,4] cannot find symbol
symbol: class Getter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[35,4] cannot find symbol
symbol: class Setter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[35,4] cannot find symbol
symbol: class Getter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[36,4] cannot find symbol
symbol: class Setter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[62,7] cannot find symbol
symbol: method setXmlToRead(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[63,7] cannot find symbol
symbol: method setPathToLogfiles(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[63,7] cannot find symbol
symbol: method setPathForStorage(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[64,7] cannot find symbol
symbol: method setPathToLogfile(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/log_handler/LogfileReader.java:[93,50] cannot find symbol
symbol: method getPathToLogfiles()
location: variable logfileSearchConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/log_handler/LogfileReader.java:[95,100] cannot find symbol
symbol: method getXmlToRead()
location: variable logfileSearchConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/Main.java:[61,51] cannot find symbol
symbol: method getPathToLogfile()
location: variable logfileToolConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/Main.java:[71,52] cannot find symbol
symbol: method getPathForStorage()
location: variable logfileToolConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
22 errors
-------------------------------------------------------------
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 1.747 s
Finished at: 2017-09-27T10:04:20+02:00
Final Memory: 14M/210M
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project LogfileTool: Compilation failure: Compilation failure:
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[7,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[8,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[9,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[10,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[26,2] cannot find symbol
symbol: class Data
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[13,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[14,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[15,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[16,14] package lombok does not exist
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[26,2] cannot find symbol
symbol: class Data
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[34,4] cannot find symbol
symbol: class Getter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[35,4] cannot find symbol
symbol: class Setter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[35,4] cannot find symbol
symbol: class Getter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[36,4] cannot find symbol
symbol: class Setter
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[62,7] cannot find symbol
symbol: method setXmlToRead(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileSearchConfig.java:[63,7] cannot find symbol
symbol: method setPathToLogfiles(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[63,7] cannot find symbol
symbol: method setPathForStorage(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/config_handler/LogfileParseConfig.java:[64,7] cannot find symbol
symbol: method setPathToLogfile(java.lang.String)
location: class ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/log_handler/LogfileReader.java:[93,50] cannot find symbol
symbol: method getPathToLogfiles()
location: variable logfileSearchConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/log_handler/LogfileReader.java:[95,100] cannot find symbol
symbol: method getXmlToRead()
location: variable logfileSearchConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileSearchConfig
ch/glue/logfiletool/logfiletool/Main.java:[61,51] cannot find symbol
symbol: method getPathToLogfile()
location: variable logfileToolConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
ch/glue/logfiletool/logfiletool/Main.java:[71,52] cannot find symbol
symbol: method getPathForStorage()
location: variable logfileToolConfig of type ch.glue.logfiletool.logfiletool.config_handler.LogfileParseConfig
-> [Help 1]
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
と私はプロジェクト
log4j:ERROR Could not instantiate class [org.apache.log4j.rolling.RollingFileAppender].
java.lang.ClassNotFoundException: org.apache.log4j.rolling.RollingFileAppender
両方のlog4jとロンボクを実行して、エラーを次取得のlog4j-エキストラなしのは、私のプロジェクトで使用されています。これを修正する方法やこれがどこから来ているのか、あなたはアイデアを持っていますか?私もプロジェクトロンボクは未使用宣言依存性としてdependency:analyze
によってマークされている問題に実行されている
最初に、[maven-dependency-plugin](https://maven.apache.org/plugins/maven-dependency-plugin/)の最新バージョンを使用することです。さらに、その依存関係がどのように使われているのかという疑問があります。 – khmarbaise
私はアナライザがバイトコードレベルで動作すると思うので、すでにコンパイルされているので、ロンボクが使用されていないようなものは検出されないかもしれません。 –
スコープを変更しようとしましたか? log4j-extrasをランタイム依存にすることはできますか?ロンボクに慣れていないと解決される可能性があります –