我有一个Java Maven项目,它具有通常的结构.它是由Spring Boot项目创建者生成的.
现在我想为它添加一些Groovy脚本,这样
我正在使用IntelliJ Idea社区版.
我需要做什么(包括放置Groovy脚本的位置)以便在IDE中编写和执行Groovy脚本,该脚本可以访问com.mycompany.SomeComplexClass依赖于Maven管理的库(编码pom.xml)的Java类?
我有一个类,它连接到H2数据库并运行几个SQL语句.
public class H2Persistence implements IPersistence {
private Connection conn;
@Override
public void open() {
try
{
Class.forName("org.h2.Driver");
conn = DriverManager.getConnection(CONN_TYPE_USER_HOME);
final Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE TABLE PERSON(" +
"ID BIGINT,"+
"AGEGROUP VARCHAR(255),"+
"MONTHLY_INCOME_LEVEL VARCHAR(255)," +
"GENDER VARCHAR(1),"+
"HOUSEHOLD_ID BIGINT)");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
我想编写一个单元测试,它验证在open方法中执行某个SQL语句(DROP TABLE IF EXISTS PERSON).
为了做到这一点,我写了以下测试:
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class) …Run Code Online (Sandbox Code Playgroud) 我想使用WiX创建一个安装程序,如果它们尚未安装,它将安装以下软件:
为此,我创建了以下Setup.wxs文件:
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*"
Name="Your Application"
Language="1033"
Version="1.0.0.0"
UpgradeCode="6431D91E-AD61-4FBB-A081-B63A0E416888"
Manufacturer="Your Company">
<Package Description="#Description"
Comments="Comments"
InstallerVersion="200"
Compressed="yes"/>
<!-- Installation directory and files are defined in Files.wxs -->
<Directory Id="TARGETDIR" Name="SourceDir"/>
<!--
Using the Wix UI library.
WixUI_Minimal is the most basic of the WixUI stock dialog sets.
Its sole dialog combines the welcome and license-agreement
dialogs and omits the feature customization dialog.
WixUI_Minimal is appropriate when your …Run Code Online (Sandbox Code Playgroud) 我有一个基于Gradle的Kotlin项目,它有一些基于JUnit的Spek测试,应该与Idea兼容.
但是我没有在上下文菜单中看到"运行"菜单项.
为什么?为了能够像其他JUnit测试一样在Idea中运行Spek测试,我需要做什么?
这是我的build.gradle:
buildscript {
ext.kotlin_version = '1.0.4'
repositories {
mavenCentral()
maven {
url "https://dl.bintray.com/jetbrains/spek"
}
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3'
}
}
apply plugin: "kotlin"
apply plugin: "application"
apply plugin: 'org.junit.platform.gradle.plugin'
junitPlatform {
filters {
engines {
include 'spek'
}
}
}
mainClassName = "com.mycompany.myproduct.AppKt"
sourceSets {
deploy
}
repositories {
mavenCentral()
maven {
url "https://dl.bintray.com/jetbrains/spek"
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile 'org.telegram:telegrambots:2.4.2'
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
compile …Run Code Online (Sandbox Code Playgroud) 一位同事告诉我,使用Gmail API库,您可以使用用户名和密码从公司Gmail帐户发送电子邮件。
到目前为止,我还无法确定如何准确地使用用户名和密码(没有访问令牌,没有秘密)来构建Gmail实例。
可以使用GMail API仅使用用户名和密码发送电子邮件吗?如果是这样,我在哪里可以找到示例?
更新1:当我使用以下代码时
@Test
fun sendMail() {
val credentials = Properties()
credentials.load(FileInputStream("src/test/resources/credentials.properties"))
val username = credentials.getProperty("username")
val password = credentials.getProperty("password")
val prop = Properties()
prop.put("mail.smtp.host", "smtp.gmail.com")
prop.put("mail.smtp.port", "587")
prop.put("mail.smtp.auth", "true")
prop.put("mail.smtp.starttls.enable", "true") //TLS
val session = Session.getInstance(prop,
object : javax.mail.Authenticator() {
override fun getPasswordAuthentication(): PasswordAuthentication {
return PasswordAuthentication(username, password)
}
})
try {
val message = MimeMessage(session)
message.setFrom(InternetAddress("..."))
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse("...")
)
message.setSubject("Testing Gmail")
message.setText("Hello!!")
Transport.send(message)
println("Done")
} catch (e: MessagingException) { …Run Code Online (Sandbox Code Playgroud) 配置AWS路由表时,我想输入目标地址A.B.C.D。在路由表中,我可以选择A.B.C.D/28或 A.B.C.D/32。
其中哪一个表示A.B.C.D仅(仅此一个地址)?
我的答案:A.B.C.D/32
理由: 后缀(/28, /32)描述了地址中有多少位是固定的。对于/28,位 29 到 32 可以变化(见下图),而对于 ,/32所有 32 位都是固定的。
我有一个 Java 应用程序,每当我启动机器时,我都想在我的 Mac 上启动它。每当机器关闭时,应用程序应正常关闭。
我在 main 方法中添加了一个关闭钩子:
Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook(scheduler)));
Run Code Online (Sandbox Code Playgroud)
ShutdownHook 类看起来像这样:
public class ShutdownHook implements Runnable {
private final static Logger LOGGER = LoggerFactory.getLogger("Shutdown Hook");
private final Scheduler scheduler;
public ShutdownHook(Scheduler scheduler) {
this.scheduler = scheduler;
}
@Override
public void run() {
LOGGER.debug("Starting to shot down the application");
try {
scheduler.shutdown();
} catch (final SchedulerException e) {
LOGGER.error("An error occurred while trying to shut down the scheduler", e);
}
LOGGER.info("Exiting the shutdown hook");
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将应用程序构建到一个可执行 JAR 中,并将其添加到“登录项”列表中。 …
我正在尝试制作一个简单的应用程序,它运行在Android设备(Alcatel One Touch 4030D,Android 4.1.1)上,并通过BlueTooth 从IOIO Mint的模拟输入引脚读取数据.
我收到下面给出的错误.它是什么意思,我该如何解决?
java.io.FileNotFoundException: /proc/mtprof/status: open failed: ENOENT (No such file or directory)
at libcore.io.IoBridge.open(IoBridge.java:451)
at java.io.FileInputStream.<init>(FileInputStream.java:78)
at java.io.FileInputStream.<init>(FileInputStream.java:105)
at com.android.server.am.ActivityRecord.mtProf(ActivityRecord.java:987)
at com.android.server.am.ActivityRecord.windowsDrawn(ActivityRecord.java:775)
at com.android.server.am.ActivityRecord$Token.windowsDrawn(ActivityRecord.java:266)
at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:7523)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:153)
at com.android.server.wm.WindowManagerService$WMThread.run(WindowManagerService.java:911)
Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
at libcore.io.IoBridge.open(IoBridge.java:435)
... 9 more
Run Code Online (Sandbox Code Playgroud)
更新1(11.06.2013 00:40 MSK):将应用程序从API级别10迁移到API级别15没有帮助.
我有两部Android手机
adb devices 检测阿尔卡特手机,但不是高屏手机.
我试图跑adb kill-server; adb start-server,但没有帮助.在不同的连接模式(媒体设备(MTP),USB存储器)之间切换也没有帮助.USB调试已启用.
以下是Developer选项设置的屏幕截图:



如何让adb识别Highscreen设备?
更新1(2013年8月3日19:00 MSK):添加行0454以adb_usb.ini没有帮助.
更新2(03.08.2013 19:59 MSK):我尝试关注官方Google推荐失败,因为我找不到Highscreen Spark设备的驱动程序.