小编use*_*500的帖子

如何让 lombok 生成的源在 eclipse/maven 中可见?

我正在尝试使用 lombok ( https://projectlombok.org/ ) 来帮助生成“样板”代码。我已经添加了 Maven 依赖项,并且还向<build>POM 中的元素添加了 lombok maven 插件。

我还被告知要做的一件事是将 lombok 注释的代码放在src/main/lombok而不是src/main/java. 我假设我保持包目录结构与src/main/java.

这看起来有点奇怪,但我这样做了,lombok 确实使用所有 getter/setter/equals/hashCode 等方法生成了源文件。它们被放置在例如target/generated-sources/lombok/x/y/z/MyClass.java。这正是我使用 XJC 等其他代码生成工具所期望的。

我的问题是:如何使生成的源代码对 Eclipse 和编译环境“可见”?我到处都遇到编译错误,因为它无法“查看”生成的代码。这发生在 Eclipse 中以及当我尝试执行mvn clean install.

更新

我已经尝试将 lombok 安装到 eclipse 中。它生成 getters/setters/等等,但是在某处引入了一个错误,破坏了 eclipse 的自动完成功能。我从 Eclipse 中删除了它,我只是想让 Maven 进行生成(或 delombok-ing)。

java eclipse maven lombok

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

如何在eclipse开普勒中安装TestNG

我试图在eclipse Kepler(4.3)中安装TestNG(我之前从未使用过).我试图按照TestNG网站(http://testng.org/doc/download.html)上提供的说明进行操作,但它们不起作用.链接(http://beust.com/eclipse/)只是带我到一个带有jar文件的页面.我的经验是,当你在eclipse中使用安装程序时,它希望提供一个"p2"存储库站点.如果我尝试使用提供的地址设置站点,则会失败.

在相关的说明中,我是否需要安装TestNG作为额外的东西(在eclipse之外),或者eclipse插件是否足够?

eclipse testng

5
推荐指数
2
解决办法
8万
查看次数

Spring boot:如何参数化@Scheduled

我是 Spring 的新手,只触及了 Spring 的皮毛。

我遇到一种情况,需要使用@Scheduled注释设置重复任务。速率被指定为对象中的成员字段,该对象被传递给封装表示任务的方法的类。

我使用了允许访问配置或环境的机制,例如@Scheduled(fixedRateString = "${some.property:default}");这很好用。

我不知道该怎么做是将对象中的值插入到@Scheduled.

例如:

class MyClass {
  private MyObject myObj;

  public MyClass(MyObject myObj) {
    this.myObj = myObj;
  }

  @Scheduled(fixedRateString = "${myObj.rate:5000}")
  private void someTask() {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

当然,上面的代码不起作用,我只是给出了我想要做的事情的例子。

任何建议,将不胜感激。

java spring-boot

5
推荐指数
2
解决办法
2万
查看次数

将响应流从 gRPC 服务返回到 RESTful 客户端时出现问题

我正在尝试编写一组服务,为外部客户端提供 REST 接口,同时使用 gRPC/protobuf 进行内部服务间通信。Spring Boot 用于帮助提供后台基础设施支持。我大约一周前才开始学习和使用 Google protobuf 和 gRPC。

我已经能够成功地获得更简单的端到端工作处理,但这些返回单个对象(即没有流)。我在进行旨在流式传输响应对象集合的调用时遇到问题。另一件需要注意的事情是,到目前为止我尝试过的所有事情都是 GET 请求。

下面的示例仅显示了我遇到问题的相关部分。

细节:

Protobuf 定义:

syntax = "proto3";

package experiment;

message BOM {
    PartSpec part_spec = 1;
    string description = 2;
    string category = 3;
}

message PartSpec {
    string part_number = 1;
    string cage_code = 2;
}

service BOMService {
    rpc getBOMList(google.protobuf.Empty) returns (stream BOM) {}
} …
Run Code Online (Sandbox Code Playgroud)

java rest spring-boot grpc-java

5
推荐指数
1
解决办法
5565
查看次数

CMake:Visual Studio 构建寻找错误的库

我有一个使用 CMake 在 Linux 和 Windows 平台上执行构建的项目。该项目的某些组件需要一些 Boost 库。许多组件都是作为共享库(.dll/.so)构建的。当我安装 Boost 时,我选择构建共享库。

问题是这样的:

在 Windows 上运行 CMake,打开生成的 VS 解决方案并运行构建后,依赖于 Boost 的组件会失败,并出现找不到库的错误。例如:

LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-gd-1_58.lib'
Run Code Online (Sandbox Code Playgroud)

果然,Boost lib 目录中没有该名称的文件。该库有共享库文件:(boost_thread-vc100-mt-gd-1_58.dll.lib

我假设“lib...”变体代表一个静态库。当我指定不使用 Boost 的静态库时,为什么它会寻找这个?Linux端似乎没有问题。

以下是我的 CMakeLists.txt 文件的一些摘录:

项目级别:

...
# Set to use shared libraries from Boost.
set(Boost_USE_STATIC_LIBS OFF)
#set(Boost_USE_STATIC_RUNTIME OFF)   <- I also tried with this uncommented - no difference
#set(Boost_DEBUG ON)

if(WIN32)
  find_package(Boost 1.58 REQUIRED system thread date_time chrono) …
Run Code Online (Sandbox Code Playgroud)

c++ boost cmake visual-studio-2010

2
推荐指数
1
解决办法
2583
查看次数

JAXB 解组:意外元素

背景

我正在使用 JAXB 将 XML 解组为 Java 对象。最初,我只使用 JAXB 来执行解组。然后对代码进行了静态分析,并提出了 XML 外部实体注入的高危问题。经过一番研究后,我发现了一个建议(https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#JAXB_Unmarshaller)使用配置为防止解析外部实体的解析器。提供了该怎么做的示例:

//Disable XXE
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setFeature("http://xml.org/sax/features/external-general-entities", false);
spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
spf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

//Do unmarshall operation
Source xmlSource = new SAXSource(spf.newSAXParser().getXMLReader(), new InputSource(new StringReader(xml)));
JAXBContext jc = JAXBContext.newInstance(Object.class);
Unmarshaller um = jc.createUnmarshaller();
um.unmarshal(xmlSource);
Run Code Online (Sandbox Code Playgroud)

我没有完全按照所示方式完成此操作,但我相信我实际上已经做了相同的操作:

XMLReader reader = getXMLReader();

if (reader == null) {
  logger.warn("Unable to create XML reader");
  return;
}

JAXBContext context = JAXBContext.newInstance(messageClass);
Unmarshaller unmarshaller = context.createUnmarshaller();

for (File file : files) {
  try { …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

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

标签 统计

java ×4

eclipse ×2

spring-boot ×2

boost ×1

c++ ×1

cmake ×1

grpc-java ×1

jaxb ×1

lombok ×1

maven ×1

rest ×1

testng ×1

visual-studio-2010 ×1

xml ×1