Цикл был обнаружен в пути сборки проекта xxx - проблема Пути Сборки

String text = String.copyValueOf(data);

или

String text = String.valueOf(data);

, возможно, лучше (инкапсулирует вызов new String).

47
задан Mauli 5 July 2009 в 10:55
поделиться

4 ответа

Принимая

  1. E - это начальная точка луча,
  2. L - конечная точка луча,
  3. C - это центр сферы, который вы проверяете относительно
  4. r , является радиусом этой сферы

Вычислить:
d = L - E (Вектор направления луча, от начала до конца)
f = E - C (Вектор от центральной сферы до начала луча)

Тогда пересечение находится с помощью ..
Заглушка:
P = E + t * d
Это параметрическое уравнение:
P x = E x + td x
P y = E y + td y
в
(x - h) 2 + (y - k) 2 = r 2
(h, k) = центр круга.

Примечание. Здесь мы упростили задачу до 2D, полученное решение применимо также и к 3D

, чтобы получить:

  1. Expand
    x 2 - 2xh + h ] 2 + y 2 - 2yk + k 2 - r 2 = 0
  2. Заглушка
    x = e x + td x
    y = e y + td y
    (e x + td x ) 2 - 2 (e x + td x ) h + h 2 + (e y + td y ) 2 - 2 (e y + td y ) k + k 2 - r 2 = 0
  3. Взрыв
    e x 2 + 2e x td x + t 2 d x 2 - 2e x h - 2td x h + h 2 + e y 2 + 2e y td y + t 2 d y 2 - 2e y k - 2td y k + k 2 - r 2 = 0
  4. Группа
    t 2 (d x 2 + d y 2 ) + 2t (e x d x + e y d y - d x h - d ) y k) + e x 2 + e y 2 - 2e x h - 2e y k + h 2 + k 2 - r 2 = 0
  5. Наконец,
    t 2 (_d * _d) + 2t (_e * _d - _d * _c) + _e * _e - 2 (_e * _c) + _c * _c - r 2 = 0
    вход. Затем переходите оттуда к следующему проекту (проектам) и повторяйте, в конце концов, цикл станет понятным.

    Вы можете несколько упростить эту задачу, используя ссылки анализа зависимостей в правом нижнем углу вкладки «Зависимости», здесь есть обнаружение цикла. и упрощенная навигация.

    Я также не знаю, почему Maven более терпим,

0
ответ дан 7 November 2019 в 13:04
поделиться

Проще говоря, цикл - это когда пакет A зависит от пакета B, который зависит от пакета A. Если это исходный код, то нет возможности построить пакеты по отдельности за один проход.

Поскольку проблема проявляется только в Eclipse, это может быть двоичная циклическая зависимость, а не на циклическую зависимость исходного кода.

В последних версиях Eclipse есть поддержка двоичных циклов: Блог Eclipsesource

Если цикл находится в вашем коде, я предлагаю провести рефакторинг кода, разбив некоторые из код для 3-го пакета, чтобы удалить циклическую зависимость.

И будьте осторожны, если вы используете фрагменты OSGi (общий шаблон для модульного тестирования), поскольку очень легко ввести циклы.

Редактор манифеста Eclipse действительно имеет функциональные возможности для вкладка «Зависимости» для поиска циклов (вам нужно щелкнуть «Анализ зависимостей»), но я никогда не видел, чтобы она показывала цикл, даже когда в Eclipse есть большой красный крестик, говорящий мне о цикле!

4
ответ дан 7 November 2019 в 13:04
поделиться

Maven завершит сборку с ошибкой, если обнаружит цикл, поскольку зависимости должны быть деревом.

Вы можете обнаружить, что у вас есть дополнительные объявления в manifest.mf по сравнению с объявлениями, определенными в pom.xml. любое дополнительное объявление может ввести цикл, который не будет очевиден для Maven.

1
ответ дан 7 November 2019 в 13:04
поделиться

Помимо формы управления зависимостями Require-Bundle (наиболее похожей на зависимости pom Maven), также можно иметь зависимости Import-Package. С Import-Package гораздо проще ввести циклические зависимости, чем с Require-Bundle, но с YMMV.

Кроме того, у проектов Eclipse есть «ссылки на проекты», в которых указано, от каких других проектов он зависит. Eclipse использует это на высоком уровне, чтобы решить, какие проекты строить и в каком порядке, поэтому вполне возможно, что ваш Manifest.MF перечисляет все правильно, но ссылки на проекты не в порядке. Щелкните проект правой кнопкой мыши и перейдите в свойства - вы увидите, от каких проектов вы зависите. Если вы текстовый человек, откройте файлы .project и посмотрите, от каких вы зависите - это '

1
ответ дан 7 November 2019 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: