Maven 构建机器学习 - 我如何让它工作?
Maven build for machine learning - how do I get it working?
我正在尝试编译和 运行 一些基本的 Java 代码在此存储库中:
https://github.com/jasebell/mlbookexamples
例如,在 Java 文件夹中,chapter2.BritneyDilemma。
我正在尝试用 Maven 来做这件事(因为有一个 pom.xml),但我觉得有一些事情阻碍了我。我对 Maven 了解不多;我的背景是 C 和 cmake。乍一看,我明白人们为什么讨厌 Maven。该项目的 pom.xml 似乎没有完全配置/看起来很不标准:
- 它只降低了一些依赖性,例如 BritneyDilemma 需要 classifier4J 但这在 pom.xml.
中没有提到
- 当我执行任何简单命令 mvn install/compile 等时,目标中的输出基本上是空的(它几乎是一个空的 jar)。
我尝试过各种方法,例如:
- 修改 pom.xml 以在 maven assembly plugin 和 运行 中添加一个
mvn clean compile package
。我最多设法得到一个打包了 pom.xml 依赖项的 jar,但由于没有 classifier4j 仍然无法编译 BritneyDilemma(pom.xml 中没有提到,所以我不确定 maven 如何应该知道它是一个 requirement/where 来拉它)。
- 远离 maven,下载 classifer4j 并通过命令行编译。 运行 时间错误和一些侦查指出我遗漏了一些 classifier4j dependency,我认为这是因为我离开了 maven,否则这将由一些递归构建来处理。
这里是库存构建尝试,没有 modifications/taking pom.xml 原样:
~/projects/mlbookexamples/java (master) $ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building mlbook
[INFO] task-segment: [install]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/alex/projects/mlbookexamples/java/src/main/resources
Downloading: http://repo.springsource.org/libs-milestone//javax/batch/javax.batch-api/1.0/javax.batch-api-1.0.jar
34K downloaded (javax.batch-api-1.0.jar)
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/alex/projects/mlbookexamples/java/src/test/resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] No tests to run.
[INFO] Surefire report directory: /home/alex/projects/mlbookexamples/java/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] [jar:jar {execution: default-jar}]
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/alex/projects/mlbookexamples/java/target/mlbookexamples-1.0-SNAPSHOT.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing /home/alex/projects/mlbookexamples/java/target/mlbookexamples-1.0-SNAPSHOT.jar to /home/alex/.m2/repository/com/datasentiment/mlbook/mlbookexamples/1.0-SNAPSHOT/mlbookexamples-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6 seconds
[INFO] Finished at: Wed Mar 04 08:38:56 NZDT 2015
[INFO] Final Memory: 33M/249M
[INFO] ------------------------------------------------------------------------
~/projects/mlbookexamples/java/target (master) $ java -jar mlbookexamples-1.0-SNAPSHOT.jar
no main manifest attribute, in mlbookexamples-1.0-SNAPSHOT.jar
我是运行宁拱linux.
要编译第 2 章,似乎不需要获取 pom.xml 中列出的依赖项。
您可以简单地从 chapter2 文件夹编译 BritneyDilemma(记得包括从下载的 Classifier4J 依赖项
http://sourceforge.net/projects/classifier4j/files/ ,这个可以放在chapter2文件夹里)。
~/projects/mlbookexamples/java/src/chapter2 (master) $ javac -cp Classifier4J-0.6.jar BritneyDilemma.java
然后您可以转到 src 文件夹和 运行 class,再次引用 chapter2 文件夹中的 classifier4j jar。
~/projects/mlbookexamples/java/src (master) $ java -classpath .:chapter2/Classifier4J-0.6.jar chapter2.BritneyDilemma
brittany spears = 0.7071067811865475
brittney spears = 0.7071067811865475
britany spears = 0.7071067811865475
britny spears = 0.7071067811865475
briteny spears = 0.7071067811865475
britteny spears = 0.7071067811865475
briney spears = 0.7071067811865475
brittny spears = 0.7071067811865475
brintey spears = 0.7071067811865475
britanny spears = 0.7071067811865475
britiny spears = 0.7071067811865475
britnet spears = 0.7071067811865475
britiney spears = 0.7071067811865475
christina aguilera = 0.0
britney spears = 0.9999999999999998
您可能已经拥有所需的日志记录库,但可以通过包管理器将其获取为 libcommons-logging-java。
或者,通常使用 eclipse 更容易。只需创建一个新的 Java 项目,但将工作目录从默认目录更改为存储库中的 java 目录。在这里新建文件夹'lib',放入classifier4j jar。在 Eclipse 中,右键单击 classifier4j 和 'add to build path'。您现在只需单击 BritneyDilemma 或任何其他源(将依赖项添加到 lib 并在必要时添加到构建路径),然后根据需要 运行。
祝机器学习愉快。
我正在尝试编译和 运行 一些基本的 Java 代码在此存储库中: https://github.com/jasebell/mlbookexamples
例如,在 Java 文件夹中,chapter2.BritneyDilemma。
我正在尝试用 Maven 来做这件事(因为有一个 pom.xml),但我觉得有一些事情阻碍了我。我对 Maven 了解不多;我的背景是 C 和 cmake。乍一看,我明白人们为什么讨厌 Maven。该项目的 pom.xml 似乎没有完全配置/看起来很不标准:
- 它只降低了一些依赖性,例如 BritneyDilemma 需要 classifier4J 但这在 pom.xml. 中没有提到
- 当我执行任何简单命令 mvn install/compile 等时,目标中的输出基本上是空的(它几乎是一个空的 jar)。
我尝试过各种方法,例如:
- 修改 pom.xml 以在 maven assembly plugin 和 运行 中添加一个
mvn clean compile package
。我最多设法得到一个打包了 pom.xml 依赖项的 jar,但由于没有 classifier4j 仍然无法编译 BritneyDilemma(pom.xml 中没有提到,所以我不确定 maven 如何应该知道它是一个 requirement/where 来拉它)。 - 远离 maven,下载 classifer4j 并通过命令行编译。 运行 时间错误和一些侦查指出我遗漏了一些 classifier4j dependency,我认为这是因为我离开了 maven,否则这将由一些递归构建来处理。
这里是库存构建尝试,没有 modifications/taking pom.xml 原样:
~/projects/mlbookexamples/java (master) $ mvn install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building mlbook
[INFO] task-segment: [install]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/alex/projects/mlbookexamples/java/src/main/resources
Downloading: http://repo.springsource.org/libs-milestone//javax/batch/javax.batch-api/1.0/javax.batch-api-1.0.jar
34K downloaded (javax.batch-api-1.0.jar)
[INFO] [compiler:compile {execution: default-compile}]
[INFO] No sources to compile
[INFO] [resources:testResources {execution: default-testResources}]
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory /home/alex/projects/mlbookexamples/java/src/test/resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] No sources to compile
[INFO] [surefire:test {execution: default-test}]
[INFO] No tests to run.
[INFO] Surefire report directory: /home/alex/projects/mlbookexamples/java/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] [jar:jar {execution: default-jar}]
[WARNING] JAR will be empty - no content was marked for inclusion!
[INFO] Building jar: /home/alex/projects/mlbookexamples/java/target/mlbookexamples-1.0-SNAPSHOT.jar
[INFO] [install:install {execution: default-install}]
[INFO] Installing /home/alex/projects/mlbookexamples/java/target/mlbookexamples-1.0-SNAPSHOT.jar to /home/alex/.m2/repository/com/datasentiment/mlbook/mlbookexamples/1.0-SNAPSHOT/mlbookexamples-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6 seconds
[INFO] Finished at: Wed Mar 04 08:38:56 NZDT 2015
[INFO] Final Memory: 33M/249M
[INFO] ------------------------------------------------------------------------
~/projects/mlbookexamples/java/target (master) $ java -jar mlbookexamples-1.0-SNAPSHOT.jar
no main manifest attribute, in mlbookexamples-1.0-SNAPSHOT.jar
我是运行宁拱linux.
要编译第 2 章,似乎不需要获取 pom.xml 中列出的依赖项。
您可以简单地从 chapter2 文件夹编译 BritneyDilemma(记得包括从下载的 Classifier4J 依赖项 http://sourceforge.net/projects/classifier4j/files/ ,这个可以放在chapter2文件夹里)。
~/projects/mlbookexamples/java/src/chapter2 (master) $ javac -cp Classifier4J-0.6.jar BritneyDilemma.java
然后您可以转到 src 文件夹和 运行 class,再次引用 chapter2 文件夹中的 classifier4j jar。
~/projects/mlbookexamples/java/src (master) $ java -classpath .:chapter2/Classifier4J-0.6.jar chapter2.BritneyDilemma
brittany spears = 0.7071067811865475
brittney spears = 0.7071067811865475
britany spears = 0.7071067811865475
britny spears = 0.7071067811865475
briteny spears = 0.7071067811865475
britteny spears = 0.7071067811865475
briney spears = 0.7071067811865475
brittny spears = 0.7071067811865475
brintey spears = 0.7071067811865475
britanny spears = 0.7071067811865475
britiny spears = 0.7071067811865475
britnet spears = 0.7071067811865475
britiney spears = 0.7071067811865475
christina aguilera = 0.0
britney spears = 0.9999999999999998
您可能已经拥有所需的日志记录库,但可以通过包管理器将其获取为 libcommons-logging-java。
或者,通常使用 eclipse 更容易。只需创建一个新的 Java 项目,但将工作目录从默认目录更改为存储库中的 java 目录。在这里新建文件夹'lib',放入classifier4j jar。在 Eclipse 中,右键单击 classifier4j 和 'add to build path'。您现在只需单击 BritneyDilemma 或任何其他源(将依赖项添加到 lib 并在必要时添加到构建路径),然后根据需要 运行。
祝机器学习愉快。