问题标签 [scala-maven-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1602 浏览

scala - scala-maven-plugin:ClassNotFoundException

我正在尝试在 Win-7 主机操作系统中运行的 Ubuntu VM 的命令行中使用 scala-maven-plugin 运行一个简单的 Scala Hello World 程序。

我尝试通过以下两种方式执行:-

  1. mvn scala:run -DmainClass=com.infoobjects.HelloWorld

  2. 在 pom.xml 的启动器标签中声明主类,然后mvn scala:run从命令行执行

但无论哪种情况,我都会收到 ClassNotFoundException 。

目录结构:-

项目 > src > main > scala > com > infoobjects > HelloWorld.scala

提前致谢。

这是我的 pom.xml

0 投票
4 回答
1866 浏览

scala - Travis CI 忽略 MAVEN_OPTS?

我的 Scala 项目(Maven 管理)未能在 Travis 上构建,GC overhead limit exceeded尽管在本地使用相同的MAVEN_OPTS=-Xmx3g -XX:MaxPermSize=512m. 我怀疑 Travis 以某种方式忽略了我的MAVEN_OPTS:当我尝试针对 Oracle JDK 8 进行测试时,Travis 记录:

看起来不错。但是,在它记录后不久:

这是令人不安的,因为我没有指定-XX:MaxPermSize=192m,只有512m。(这让我相信 my-Xmx3g也被忽略了,导致编译失败。)

我尝试MAVEN_OPTS在我的 pom 中的许多其他地方指定,但无济于事。例如,对于 maven-scala-plugin,我有:

而且我在 maven-surefire-plugin 和 scalatest 插件下也有以下内容,尽管在编译而不是测试期间构建失败:

以下是我的 .travis.yml 的全部内容:

我正在使用 Scala 2.11.2 和 scala-maven-plugin 3.2.0。

0 投票
1 回答
1445 浏览

scala - 要求 Java 8 使用 Maven 构建 Scala 项目

我正在scala-maven-plugin使用 Maven 构建一个 Scala 项目。我的项目依赖于 Java 8 中的一些库。我想在我的 pom 中指定该项目需要 Java 8(使用类似于 的东西-target=jdk-1.8,它似乎不存在),这样当有人尝试时它会更优雅/更有信息地失败使用 Java 版本 < 8 进行编译。目前它只是找不到我要导入的包。

我尝试添加maven-compiler-plugin并设置为 1.8 sourcetarget但这不起作用,大概是因为scala-maven-plugin正在处理编译而不是maven-compiler-plugin.

这可能吗?

0 投票
1 回答
212 浏览

java - 使用 scala 插件在 Intellij/maven 中配置 1.7 时的 Java 6 类

如屏幕截图所示,模块/项目设置为 jdk 1.7

项目/sdk设置为7:

在此处输入图像描述

模块设置为 jdk 7:

在此处输入图像描述

但是从 javap 我们看到 java 6 (50) ??

a) 确认类刚刚编译 (7/22/15 @18:14):

b)哪个版本的java?

注意:pom.xml 将语言级别设置为jdk7

更新 根据我从命令行运行编译的建议:

也会导致 jdk6 /major version=50。现在为什么会这样?我正在检查 POM 以查看是否存在其他怪异现象。

Per Roman 要求的另一个更新:这里是 Maven 输出

另一个更新ElliottFrisch 建议对 maven 编译器插件进行一些补充。这是更新的部分:

0 投票
2 回答
1653 浏览

scala - 在 Maven 项目中增量编译 Scala

我想在 Maven 项目中逐步编译 Scala。

目前,即使没有任何变化,Scala 也会编译。

我已经尝试过 scala-maven-plugin,但它似乎根本没有增量工作。

pom.xml

src/main/scala/example/Foo.scala

Maven版本:

接着:

每次都编译!

我如何才能获得一个仅在 Scala 发生更改时才编译 Scala 的 Maven 项目?

0 投票
1 回答
12326 浏览

java - Maven:在一个项目中混合 Java 和 Scala

今天,我一直在尝试找到一个合适的解决方案来设置一个包含 Java 和 Scala 代码(它们之间具有双向依赖关系)的 maven 项目。

我发现的解决方案通常包括在阶段调用 scala-maven-plugin 或 maven-scala-pluginprocess-resources以便它在默认的 maven 编译器插件之前运行(示例:http ://www.hascode.com/2012/03 /snippet-mixing-scala-java-in-a-maven-project/,https://itellity.wordpress.com/2014/08/21/mixing-scala-and-java-in-a-maven-project/ _ _,官方 scala-maven-plugin 页面:http ://davidb.github.io/scala-maven-plugin/example_java.html )。

这导致了如下所示的解决方案:

该解决方案运行良好 - 在阶段调用 Scala 编译,它编译 Java 和 Scala 代码,因此当 maven 编译器插件在阶段process-resources运行时,.class 文件都准备好了。compile

问题是这个解决方案对我来说看起来并不干净。在编译阶段之前调用 Scala 编译过程只是为了确保它在 maven 编译器插件看起来“hacky”之前运行。

Scala 编译器无论如何都会编译 Java 类,所以我想我可以完全关闭默认的 maven 编译器插件,然后 Scala 编译器可以在该compile阶段运行。尽管配置有点长,但对我来说它看起来更干净:

我想知道为什么这个解决方案不是博客文章或官方插件页面上建议的解决方案。这种方法有什么缺点吗?使用第二种解决方案而不是第一种解决方案有什么问题吗?

0 投票
1 回答
1679 浏览

scala - Maven 的 Scaladoc 选项

我正在scala-maven-plugin为 Maven 寻求帮助。我想生成我的 Scaladoc,但我遇到了一些问题。

实际上,我可以输入以下命令来创建我的 Scaladoc:

现在的问题是我想在生成 Scaladoc 时添加一些选项,例如-no-link-warnings.

有谁知道如何做到这一点?我找到了一种方法(下面的代码有效),但我认为我不应该这样做。

我的pom文件是:


编辑

用户 Tunaki 在第一次回复中建议了一种更好的方法,您可以在此处查看代码。

0 投票
4 回答
3062 浏览

scala - 使用 scala maven 插件强制使用 jvm 7 的 pom 配置

由于 scala 2.9.2 项目和 java 8 版本之间不兼容,我需要在我的 maven 项目中手动指定 jvm 的使用。

我制作的 pom.xml,使用这里的文档:

我尝试这个没有成功,maven 继续使用我当前的 jvm 8 而不是给出的 jvm maven-compiler-plugin<executable>/home/reyman/Logiciels/jdk1.7.0_80/bin/javac</executable>

如何在mvn compile混合 scala/java 源项目期间强制使用 jvm 7?

0 投票
1 回答
506 浏览

scala - 构建 Scala Maven 项目时出错:无法找到或加载主类 scala_maven_executions.MainWithArgsInFile

使用以下命令构建 Maven 项目时出错maven-scala-plugin

0 投票
2 回答
2632 浏览

xml - 来自 Maven 的 Scalatest:如何标记和过滤出整个套件?

我有一个 Maven 项目,我正在使用scalatest-maven-plugin来配置 scalatest。我正在使用 scalatest 3.0.0 但是我无法标记和过滤掉整个套件。

作为参考,我使用了博客标记整个 ScalaTest 套件(Java 8 的更新),但这似乎不适用于 Maven。

我创建了一个新Skip标签,定义如下:

然后我像这样标记我的测试套件:

然后我像这样配置我的 scalatest-maven-plugin:

然后运行mvn clean install -X我看到(它正确地将 -l 标记排除 CLI 参数传递给 Scalatest):

但是AcceptanceTest套件仍然被执行。我也尝试过像这样标记套件但没有成功: