我正在撕裂我的头发.我已经将我的脚本剥离回Gradle教程页面中提供的代码,因为我认为我要么做了一些根本错误的事情,要么误解了如何使用gradle构建多项目应用程序.
我在eclipse中有三个java项目,其中三个包含build.gradle脚本,只有一个包含settings.gradle脚本.结构如下:
Scripts
-- build.gradle
-- settings.gradle
Database
-- build.gradle
Services
-- build.gradle
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用"脚本"项目中的构建脚本构建"数据库"和"服务"项目.要创建项目树,我在settings.gradle中有以下代码:
include 'Services', 'Database'
project (':Services').projectDir = new File(settingsDir, "../Services")
project (':Database').projectDir = new File(settingsDir, "../Database")
Run Code Online (Sandbox Code Playgroud)
复制多项目教程中的代码(gradle docs),我试图让每个构建脚本打印出一些文本,以确保所有内容都正确设置.我的最终目标是在执行'eclipseClasspath'时正确构建依赖项,以便所有项目在eclipse中正确编译.但是,正如我所料,文本没有打印出来!
以下是三个构建脚本中包含的内容:
脚本build.gradle
allprojects {
task hello << { task -> println "I'm $task.project.name" }
}
subprojects {
hello << {println "- I depend on Scripts"}
}
Run Code Online (Sandbox Code Playgroud)
数据库build.gradle
hello.doLast {
println "- I'm inside database"
}
Run Code Online (Sandbox Code Playgroud)
服务build.gradle
hello.doLast {
println "- I'm inside services"
}
Run Code Online (Sandbox Code Playgroud)
在'Scripts'项目中,当我运行'gradle -q hello'时,我得到以下结果:
I'm Scripts …Run Code Online (Sandbox Code Playgroud) 我试图从oracle数据库存储过程向java应用程序发送点对点JMS消息.这两个"点"位于不同的机器上,我已经确认可以通过ping相互通信.
我创建了一个java应用程序,能够成功地将消息从应用程序服务器中的队列中取出.该应用程序在JBoss v4.2.3服务器中运行.我已经能够从远程Java应用程序成功发送JMS消息,所以我确信在服务器中运行的代码是可以的.
我从工作的远程java应用程序中获取代码并将其成功加载到oracle存储过程中.我还设法(我相信!)使用loadjava实用程序将所需的jar文件加载到oracle中.我加载的三个jar文件是:
* jms-1.1
* jbossmq-3.2.3
* jboss-client-4.0.2
Run Code Online (Sandbox Code Playgroud)
这三个jar在工作的远程java应用程序中使用,看起来就是所有需要的.包含在存储过程中的代码如下:
package com.base.jms.client;
import java.util.Hashtable;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
public class StandAloneClient {
public static String send() throws Exception {
String result = "Starting -> ";
try {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "192.168.111.242:1099");
env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
result = result + "Environment -> ";
// set up stuff
Context ic = new InitialContext(env);
result …Run Code Online (Sandbox Code Playgroud)