gpt4 book ai didi

grails - 将Grails插件部署到Nexus时出现问题

转载 作者:行者123 更新时间:2023-12-02 15:41:07 25 4
gpt4 key购买 nike

我有一个grails项目,配置为插件,我要做的就是将其推送到本地Nexus存储库中。

我已经能够使用grails发布插件来做到这一点,但是当我随后使用依赖项时,使用依赖项的项目无法找到类。

因此,我查看了jar来了解原因,并且似乎没有任何Groovy代码已被编译,看起来所有groovy文件都已经打包在一起,而不是先编译代码。

有什么想法我做错了吗?

有关我在做什么的信息:

Cereal :2.4.3

BuildConfig.groovy

grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"

grails.project.repos.nexus.url = "http://xxxxx:8081/repository/maven-snapshots/"
grails.project.repos.default = "nexus"
grails.project.repos.nexus.username = "xxxx"
grails.project.repos.nexus.password = "xxxxx"

grails.project.fork = [
// configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
// compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],

// configure settings for the test-app JVM, uses the daemon by default
test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
// configure settings for the run-app JVM
run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
// configure settings for the run-war JVM
war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
// configure settings for the Console UI JVM
console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]
grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
// inherit Grails' default dependencies

inherits("global") {
// uncomment to disable ehcache
// excludes 'ehcache'
}
log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
repositories {
grailsCentral()
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.xxx:lsi-client:1.0-SNAPSHOT'
}

plugins {
build ':release:3.0.1', {
export = false
}
}
}

要创建 Artifact ,我运行以下命令
grails maven-deploy

我也尝试了以下命令
grails publish-plugin --repository=nexus

我有grails项目的标准目录结构。不知道要提供什么其他信息。此时拉出我的头发。

当我运行grails-compile时,它可以按预期完成正确的操作,并且常规类被编译到target / classes目录中。

最佳答案

对于那些对这里的答案感兴趣的人,我最终加入了Grails Slack社区,那里的一个人友善地回答了我的问题:

Grails 2插件只是打包了源代码,无论是zip还是jar,都不会编译这些类。它们由使用插件的应用程序编译

Grails 3+与我所了解的有所不同,插件都是jar,都是经过编译的。

很高兴知道,但这是从Grails 2升级的另一个原因...

编辑:
找到了其他有用的东西,如果您需要在grails 2插件中将域类编译并打包为maven本地仓库中的jar,则可以使用以下命令来实现

grails maven-install --binary

还要确保将pom.xml中的 Artifact 类型也设置为jar(或因为我认为默认 Artifact 类型为jar而被排除在外)
<?xml version="1.0" encoding="utf-8"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.company</groupId>
<artifactId>ArtifactName</artifactId>
<packaging>jar</packaging>
<version>0.1</version>

希望这可以帮助其他人。

关于grails - 将Grails插件部署到Nexus时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60606050/

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