Z powodu rosnącego zagrożenia ze strony floty szwedzkiej zbudowano w latach 1624–1626 dwa szańce typu holenderskiego. Szaniec Wschodni, który powstał na wschodnim brzegu Wisły, składał się z pięciu bastionów, które od strony północnej kolejno nosiły nazwy: Pucki, Ostroróg, Świński Łeb, Bielnik, Wiślany. Na zachodnim brzegu Wisły powstał z kolei Szaniec Zachodni. Załoga twierdzy była chroniona przez dwie fosy wypełnione wodą z Wisły, zwodzony most, a także raweliny znajdujące się przed Szańcem Wschodnim.
Po 1623 roku stacjonowała tu królewska flota wojenna. 28 listopada 1627 roku okręty polskie stoczyły bitwę pod Oliwą w ramach wojny ze Szwedami, w wyniku której zdobyły szwedzki okręt admiralski „Tigern”. Szwedzi natomiast w nocy z 5 na 6 lipca 1628 roku nieopodal latarni zatopili dwa polskie okręty: „Żółty Lew” oraz „Rycerz Święty Jerzy”.