我有以下pom.xml:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mycompany</groupId>
<artifactId>resource-fail</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<foo.bar>BazBat</foo.bar>
</properties>
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>Development</id>
<!--
<activation>
<activeByDefault>true</activeByDefault>
</activation>
-->
<properties>
<foo.bar>Development</foo.bar>
</properties>
</profile>
</profiles>
</project>
Run Code Online (Sandbox Code Playgroud)
请注意,该activation元素已profile被注释掉
我也有以下内容 src/main/java/application.properties
myproperty=${foo.bar}
Run Code Online (Sandbox Code Playgroud)
因此,我希望Maven的做的仅仅是更换${foo.bar}用BazBat,除非发展轮廓activiated,那么我期待Maven来代替${foo.bar}与Development
当我运行mvn package它时,将值设置为BazBat.好,资源过滤按预期工作.
但是,当我运行mvn package -P Development它时,将值设置为BazBat
为了进一步混淆,如果取消注释activation配置文件中的元素并运行mvn package它将设置${foo.bar}为Development
我甚mvn help:active-profiles package至跑来让它输出活动的配置文件名称,并且在上面的两个场景中它都说开发配置文件是活动的,但是如果没有activeByDefault设置标志,过滤仍然不起作用. …
我是一名强大的Java开发人员,他最近开始尝试在我的空闲时间内学习Scala.我正在通过scala-lang.org中的示例 PDF来阅读Scala,并且很困惑第一个示例中的快速排序是如何工作的.这是代码:
object QuickSort extends App {
def sort(input: Array[Int]): Array[Int] = {
if(input.length <= 1) input
else
{
val pivot = input(input.length / 2)
Array.concat(
sort(input filter (pivot >)),
input filter (pivot ==),
sort(input filter (pivot <))
)
}
}
sort(Array(5, 4, 3, 2, 1)) foreach println
}
Run Code Online (Sandbox Code Playgroud)
我的问题不是语法或任何东西,但我对过滤函数的来源感到困惑.根据PDF,它说它来自Seq [T]类,并且所有数组都是Seq [T]的实例.这一切都很好,花花公子,在阅读PDF时,我很满意,也是一位非常开心的新手Scala开发人员.但后来我深入挖掘并开始查看Array [T]的scaladoc以及Array [T]的源代码,我不知道Array [T]类是如何扩展或继承Seq [T]特征的所有.我错过了什么?
我再次与Scala一起探讨,并希望这将是关于鸭子打字的基本问题,或者它可能真的与函数定义有关.让我解释:
给出以下代码:
package johnmcase.scala.oneoffs
object DuckTyping extends App {
def printIt(x:Int, y:Int) = println("Value with " + x + " = " + y);
// This method will accept ANY object that has a method named foo of type (Int) => Int
def duckTyped(duck: {def foo: (Int) => Int}) = {
List(1,2,3,4,5) foreach (i => printIt(i, duck.foo(i)))
}
println(new DoublerThatWontWork().foo(5))
println(new Doubler().foo(5))
println("DOUBLER:");
duckTyped(new Doubler());
println("Squarer:");
duckTyped(new Squarer());
println("AlwaysSeven:");
duckTyped(new AlwaysSeven());
println("DoublerThatWontWork :");
duckTyped(new DoublerThatWontWork ()); // COMPILER ERROR!!
} …Run Code Online (Sandbox Code Playgroud) 我正在使用新的Windows Server Service Bus 1.0 Beta开始一个新项目的工作.我正在尝试在AWS EC2虚拟机上设置测试环境.
我已在AWS EC2上运行的Windows Server 2008 R2实例上安装了Service Bus,并根据MSDN documentatoin中的示例设置了新的Farm,Container和Host.我在服务器上打开了所有正确的端口(4443和9354).我还按照[本页] [1]的说明将自生成的证书导出到我的客户端计算机上.
我有一个非常简单的C#程序,它创建一个队列,对消息进行排队并接收它.当我将可执行文件复制到VM并在那里运行时,这个程序工作正常,所以我相信我正在使用API.但是,当我从指向AWS服务器的本地开发框运行程序时,我得到了安全性异常.
我的代码看起来像这样:
var servername = "X.X.X.X"; // <-- An IP Address, not FQDN
var sbNamespace = "MyNamespace";
var httpPort = 4446;
var tcpPort = 9354;
//create SB uris
var rootAddressManagement = ServiceBusEnvironment.CreatePathBasedServiceUri("sb", sbNamespace, string.Format("{0}:{1}", servername, httpPort));
var rootAddressRuntime = ServiceBusEnvironment.CreatePathBasedServiceUri("sb", sbNamespace, string.Format("{0}:{1}", servername, tcpPort));
var tokenProvider = TokenProvider.CreateWindowsTokenProvider(new List<Uri>() { rootAddressManagement });
var namespaceManager = new NamespaceManager(rootAddressManagement,
new NamespaceManagerSettings()
{
TokenProvider = tokenProvider
});
var …Run Code Online (Sandbox Code Playgroud)