我跟随this guide在Maven中发布了一个Scala / SBT JAR文件。
我运行了spark-fast-test0.11.0发行版的sbt publishSigned
和sbt sonatypeRelease
,JAR文件被正确构建。See here。这些命令来自sbt-sonatype插件。
由于某些原因,当我发布0.12.0版本时,Maven JAR文件只包含HTML文件和图像。例如,下载的JAR文件包含此文件com/github/mrpowers/spark/fast/tests/DatasetComparer.html
,但不包含DatasetComparer.class
。
target/scala-2.11/spark-fast-tests_2.11-2.3.0_0.12.0.jar
文件也只包含HTML文件( sbt publishSigned
或sbt sonatypeRelease
必须已经生成了这个JAR文件)。
当我运行sbt package
时,不出所料,生成的JAR文件包含了像com/github/mrpowers/spark/fast/tests/DatasetComparer.class
这样的Scala类。
spark-fast-tests是一个开源项目,这里是build.sbt file。
如何在上传到Maven的JAR文件中包含我的项目类?关于如何更好地调试它,有什么建议/技巧吗?
发布于 2018-06-18 08:34:21
分析spark-fast-tests build.sbt
我会提出以下建议:
sbt-release
添加到plugins.sbt
以启用发布流程自定义:addSbtPlugin("com.github.gseitz“% "sbt-release”% "1.0.8") addSbtPlugin("org.xerial.sbt“% "sbt-sonatype”% "2.0") addSbtPlugin("com.jsuereth“% "sbt-pgp”% "1.1.0")
version.sbt
位于项目根并将version
设置移出build.sbt
:在项目根目录下的ThisBuild := "0.12.1-SNAPSHOT"
sonatype.sbt
中的版本,并将以下设置移出build.sbt
:homepage := Some(url("https://github.com/mrpowers/spark-fast-tests/")) scmInfo := Some( ScmInfo( url("https://github.com/mrpowers/spark-fast-tests/"),"git@github.com:mrpowers/spark-fast-tests.git“)) developers := List( Developer(”mrpower“,"Matthew Power”,"matthewkevinpowers@gmail.com",url("https://github.com/mrpowers/spark-fast-tests/")许可列表("MIT",url("http://opensource.org/licenses/MIT")) publishMavenStyle := true
build.sbt
:使用sbt release
将sbtrelease.ReleaseStateTransformations._ publishTo := Some( if (isSnapshot.value) { Opts.resolver.sonatypeSnapshots } else { Opts.resolver.sonatypeReleases }) releasePublishArtifactsAction := PgpKeys.publishSigned.value releaseProcess :=导入到Maven Central
有关工作示例,请查看sbt-sonatype
本身的构建配置。
https://stackoverflow.com/questions/50893846
复制相似问题