8

我想在这里使用 arquillian 插件来运行 jetty 8+:

https://github.com/aslakknutsen/arquillian-gradle-plugin

如果我将“应用插件:'arquillian'”放在我的 gradle 脚本中,它不会找到它。

所以我必须以某种方式安装它。我寻找这方面的信息,但没有找到。

你能指点一下如何做到这一点吗?

我在 Windows 上使用 gradle 1.6。


@raeffs 回答后更新:我用它更新了 gradle 脚本并且构建成功,但我没有看到我的战争在 arquillianRunJetty 之后开始(端口 8080 甚至没有监听)。

然后我尝试添加github页面上指示的内容:

arquillian {
    debug = true
    deployable = file('my/path/arbitraryWebApp.war')

    containers {
        jetty {
            version = '8'
            type = 'embedded'
            config = ['bindHttpPort': 8080, 'bindAddress': '127.0.0.1', 'jettyPlus': false]

            dependencies {
                adapter 'org.jboss.arquillian.container:arquillian-jetty-embedded-7:1.0.0.CR2'
                container 'org.eclipse.jetty:jetty-webapp:8.1.11.v20130520'
                container group: 'org.eclipse.jetty', name: 'jetty-plus', version: '8.1.11.v20130520'
            }
        }

我不得不将 arquillian-jetty-embedded-7:1.0.0.CR2 替换为 CR1,因为它不在 Maven 中心。

然后我把我的战争路径。重新开始时,有更多的喋喋不休,但仍然没有在端口 8080 上监听。

所以我还是想念一些东西。

我也觉得不得不为我正在使用 gradle 脚本构建的战争引用绝对路径很尴尬。我认为可能有一种自我参照。

更新 由于@raeffs,它现在运行良好。我真的不知道我上一步出了什么问题。

Web 应用程序的路径采用名称和版本。

谢谢

4

1 回答 1

12

该插件的创建者尚未将其发布到 maven 存储库,因此您必须自己构建它。

获取插件项目的本地副本并构建它。你应该得到一个 'arquillian-gradle-plugin-0.1.jar' 作为输出。

在您自己的项目的构建脚本中,您必须声明对该 jar 的依赖关系。将以下内容添加到您的构建脚本中:

buildscript {
    dependencies {
        classpath fileTree(dir: '/path/to/folder/that/contains/the/jar',
            includes: ['arquillian-gradle-plugin-0.1.jar'])
    }
}

现在您应该可以使用该插件了。

更新

如果您不想为您的可部署提供硬编码路径,您可以简单地传递一个变量。例如,如果您使用的是战争插件:

arquillian {
    deployable = war.archivePath
}

这是一个使用示例:https ://gist.github.com/raeffs/5920562#file-build-gradle

它启动码头容器,部署战争并等待直到按下 ctrl+c。

于 2013-06-27T16:45:13.410 回答