小编joh*_*ase的帖子

使用配置文件属性进行Maven资源过滤

我有以下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设置标志,过滤仍然不起作用. …

maven maven-resources-plugin maven-profiles

8
推荐指数
1
解决办法
2068
查看次数

scala.Array怎么样?

我是一名强大的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

7
推荐指数
1
解决办法
1万
查看次数

斯卡拉鸭子打字新手

我再次与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)

scala

3
推荐指数
1
解决办法
1027
查看次数

在AWS上连接到Windows Server Service Bus

我正在使用新的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)

amazon-ec2 servicebus amazon-web-services azureservicebus

3
推荐指数
1
解决办法
5697
查看次数